簡體   English   中英

如何單擊按鈕直到從屬值達到某個值?

[英]How to click on Button until a dependent value reaches a certain value?

使用量角器,我試圖使UI的一部分自動化,其中使用加號-減號按鈕選擇了最小-最大范圍(即100'000-200'000)。

有一個inputAmount (即250'000),定義了要選擇的范圍。 現在,我應該單擊plus-button直到得到200'000-300'000的范圍,該范圍由動態調整的<div class="currentMax">100'000</div>

我的問題是將當前選定范圍的currentMax從String轉換為數字,因此可以將其與inputAmount進行比較。 HTML看起來像這樣:

 <html> <div class="max">100'000</div> <div class="slider-buttons"> <div class="slider-button"> <div class="slider-button-plus"></div> </div> <div class="slider-button"> <div class="slider-button-minus"></div> </div> </div> </html> 

我的量角器代碼如下所示:

this.selectAmountRange = function() {
    var currentMax = $('.max').getText();  //How do I get this value as number?
    var btnPlus = $('.slider-buttons .slider-button-plus');
    for (i = currentMax; i <= inputAmount; i = currentMax) {
        btnPlus.click();
        browser.wait(300);
    };
};

一個問題是currentMax用“'”分隔千位,因此我無法直接將其轉換。 另一個問題是,getText()返回一個promise,但是即使我找到了一些示例,到目前為止我仍然無法獲取字符串甚至刪除定界符。

我試過了,但是沒用。

var currentMax = $('.max').getText().then(function(value){
    value.replace(/\'/,'');
    });

由於我是JavaScript和Protractor的新手,我認為這只是我做錯了的某種語法。 感謝您提供任何建議,並推動着可行的功能。

我沒有發表評論的權利,因此我將其作為答案,您是否將所有代碼都放在了then()中-在promise返回值之后?

currentMax是一個初始化一次的變量,一旦進入循環,循環是否結束!

您提到過currentMax,並且代碼中有max,它們是一樣的嗎? btnPlus點擊次數最多增加什么?

最后,我建議類似以下內容:

$('.max').getText().then(function(value){
    var currentMax = parseInt(value.replace(/\'/,''));
    var btnPlus = $('.slider-buttons .slider-button-plus');
    for (i = currentMax; i <= inputAmount; i++) {
        btnPlus.click();
        browser.wait(300);
    };
});

由於javascript是異步的,因此您需要先解析Promise,然后才能訪問Promise的返回值。 在您的情況下,您需要實現遞歸以使您的方法單擊滑塊,直到設置了所需的值。 看下面的例子。

var selectAmountRange = function(inputAmount) {
     $('.max').getText().then(function(currentMax){
         var btnPlus = $('.slider-buttons .slider-button-plus');
          if(currentMax < selectAmountRange){
              btnPlus.click();
              browser.sleep(3000);
              selectAmountRange(inputAmount); //call the same method untill required inputAmount is selcted.
          }
     }; 
};

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM