如何在量角器中执行简单的JavaScript循环

拉胡尔
for ( i = 0; i < 100; i++) {
         browser.manage().logs().get('browser').then(function(browserLog) {
                console.log(i);  
                });

    }

我试图使用量角器来运行此程序,但是我在控制台中得到100倍100的打印。我有一些功能正在尝试使用循环来实现。我该如何在量角器中循环播放

TJ人群

这是因为要传递给的函数then都封闭了变量 i,而不是创建函数时变量具有所以后来,当函数被调用,他们都看到的价值i,因为它是那么的循环完成(100)之后。

如果要i在创建函数时捕获其原样的值,则可以使用ES5的Function#bind

for ( i = 0; i < 100; i++) {
    browser.manage().logs().get('browser').then(function(index, browserLog) {
        console.log(index);  
    }.bind(null, i));
}

bind返回一个新函数,该函数在被调用时将使用给定this值(在这种情况下,我正在使用null)以及您在其后跟随的任何参数调用原始函数,然后再bind返回给该函数的参数

另一种方法是构建器功能:

for ( i = 0; i < 100; i++) {
    browser.manage().logs().get('browser').then(buildHandler(i));
}
function buildHandler(index) {
    return function(browserLog) {
        console.log(index);
    };
}

这具有允许调用者控制的优点this

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

For循环未在量角器中执行

来自分类Dev

For循环未在量角器中执行

来自分类Dev

如何在量角器中执行“ angular.element()。scope()”?

来自分类Dev

如何在量角器中执行 Control+Click 的多选选项?

来自分类Dev

如果量角器无法在视图中定位元素,如何在量角器测试中执行自动滚动到元素?

来自分类Dev

量角器 Javascript 未按顺序执行

来自分类Dev

如何执行量角器黄瓜

来自分类Dev

如何突破量角器的for循环?

来自分类Dev

While在量角器中循环

来自分类Dev

如何在量角器测试规格中包含lodash?

来自分类Dev

如何在量角器中创建和操纵承诺?

来自分类Dev

如何在量角器中更改URL

来自分类Dev

如何在量角器中捕获ngToast消息

来自分类Dev

如何在量角器中设置单选按钮值

来自分类Dev

如何在量角器中获取页面的来源

来自分类Dev

如何在量角器中模拟拖放动作?

来自分类Dev

如何在Intellij中调试量角器?

来自分类Dev

如何在量角器中识别此元素?

来自分类Dev

如何在量角器中设置webElement的属性?

来自分类Dev

如何在量角器中返回警报文本?

来自分类Dev

如何在量角器调试中显示当前URL

来自分类Dev

如何在规范中调用该函数-量角器

来自分类Dev

如何在量角器中编写beforeSomeTests?

来自分类Dev

如何在量角器中创建和操纵承诺?

来自分类Dev

如何在量角器测试规格中包括lodash?

来自分类Dev

如何在量角器中捕获ngToast消息

来自分类Dev

如何在量角器中拖放滑块?

来自分类Dev

如何在量角器中打印Webelement?

来自分类Dev

如何在量角器中定位 Ngrx/Store