javascript - 如何单击按钮直到依赖值达到某个值?

标签 javascript protractor

使用 Protractor ,我尝试自动化 UI 的一部分,其中使用加减按钮选择最小最大范围(即 100'000-200'000)。

有一个inputAmount (即 250'000),定义要选择的范围。 现在我应该点击plus-button直到我得到一个范围 200'000-300'000,由动态调整的 <div class="currentMax">100'000</div> 标识。 .

我的问题是转换 currentMax当前选定范围从字符串到数字的范围,因此我可以将其与 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>

我的 Protractor 代码如下所示:

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 还很陌生,我认为这只是我做错的一些语法。 感谢您提供任何建议并插入实现可行的功能。

最佳答案

由于 javascript 是异步的,因此您需要在访问 Promise 的返回值之前解析 Promise。在您的情况下,您需要实现递归以使您的方法单击 slider 直到设置所需的值。看看下面的例子。

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.
          }
     }; 
};

关于javascript - 如何单击按钮直到依赖值达到某个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46452454/

相关文章:

javascript - 我无法使用 CefSharp 从 WinForms 的 c# 获取一些数组

javascript - 如何在表单输入中正确使用 ng-bind (单向绑定(bind))?

javascript - 使用 JQuery 在 5 秒后隐藏元素实例

node.js - 如何在 Windows 机器上使用 Node Js 连接到 Oracle 数据库

javascript - 如何在 Protractor 中的元素上鼠标移动

javascript - $.ajax提交表单,有时成功有时出错

javascript - 看看后台执行了什么JS? [仅限IE]

javascript - 是否可以在 Protractor 中单击绝对定位的伪元素

javascript - 错误 :process_metrics. cc 未实现错误

javascript - Jasmine IT block 在 'beforeAll' block 之前执行