gpt4 book ai didi

node.js - WebdriverIO 中的循环元素

转载 作者:搜寻专家 更新时间:2023-10-31 23:41:42 24 4
gpt4 key购买 nike

我正在尝试遍历链接列表,并对每个链接执行一些操作。我可以使用 elements 迭代元素, 但使用 click forEach 内部不会阻止 forEach 的下一步,Selenium 变得疯狂,因为它试图继续对不在 DOM 中的元素执行操作。

var q = require("q");
var webdriverio = require('webdriverio');
var options = {
desiredCapabilities: {
browserName: 'chrome'
}
};

var clicks = [];

var runner = webdriverio.remote(options);

runner
.init()
.url('https://www.google.dk/search?q=burrito')
.elements(".r").then(function(res){
res.value.forEach(function(elem){
console.log(elem);
clicks.push(
runner
.elementIdClick(elem.ELEMENT)
.pause(5000)
.back()
.pause(2000)
);
});

return q.all(clicks);
});

如何确保 forEach 中的下一次迭代不会在 forEach 内的所有代码执行之前运行?

编辑:我应该提到我已经尝试过 https://github.com/webdriverio/webdriverio/issues/941https://github.com/webdriverio/webdriverio/issues/273 .我用更具体的内容更新了我的代码示例。

最佳答案

var runner = webdriverjs
.remote(options)
.init()
.url("http://www.google.com")

// fetch elements
.elements('a', function(err, res){
// iterate through elements
res.value.forEach(function(elem) {
// execute specific action
runner.elementIdClick(elem.Element, function(err, res) {
// callback logic here
// ...
})
})
})

来自 https://github.com/webdriverio/webdriverio/issues/273

关于node.js - WebdriverIO 中的循环元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34909472/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com