【发布时间】:2016-01-20 20:05:47
【问题描述】:
我正在尝试遍历链接列表,并对每个链接执行一些操作。我可以使用elements 迭代元素,但是在forEach 中使用click 不会阻止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/941 和https://github.com/webdriverio/webdriverio/issues/273。我用更具体的内容更新了我的代码示例。
【问题讨论】:
标签: node.js selenium selenium-webdriver webdriver-io