因为我是webdriverio的新手,所以我一直坚持这个问题。我的要求是我要有一个包含项目列表(如按钮等)的页面,我需要一个一个地单击每个项目。但是单击每个项目后,它将重定向到另一个部分/页面。并且有一个“关闭按钮”可以返回首页(其中包含项目列表)。
我的实际要求是,webdriverclient必须单击该按钮,然后转到相应页面,然后单击“关闭按钮”,然后返回并单击第一个按钮,它将继续直到所有按钮完成。(我在这里使用了“异步”模块)
代码在这里。
var webdriverio = require('webdriverio');
var async = require("async");
var options = {
desiredCapabilities: {
browserName: 'chrome'
}
};
var client = webdriverio.remote(options);
client
.init()
.url('pagelink')
.elements('li', function (err, res) {
if (err) {
console.log(err);
} else {
var i = res.value.length;
async.each(res.value, function (oneResult, callback) {
console.log('i value = ' + i);
client
.pause(5000).then(function () {
console.log('Waiting for ..... i = ' + i);
client
.element('li :nth-Child(' + i + ')').click('#button').then(function () {
console.log('I do .....' + i);
client
.pause(3000).then(function (time) {
console.log('Waiting for 3 sec....');
client
.click('.closeBtn').then(function (err, res) {
console.log('Coming Back');
});
});
});
});
i--;
}, function (err) {
if (err) {
console.log('A processing failed to process. ' + err);
} else {
console.log('All results have been processed successfully');
}
});
}
})
.end();
最佳答案
我对webdriverio相对较新(一个月),我尝试了您所做的事情,但发现webdriverio的范式应该更像。
client
.click('li :nth-Child(' + i + ')')
.waitForExist('.closeBtn')
.click('.closeBtn')
.waitForExist('.uniq_to_first_page');
关于node.js - 在webdriverio中执行异步功能,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34013478/