NightwatchJS 使用 browser.back() 迭代链接
NightwatchJS iterating links with browser.back()
我正在尝试遍历 link 并在每次单击时断言页面存在并 return 返回。到目前为止,我已经在测试用例中使用了这个函数。问题在于,在单击第一个 link 并向后导航后,浏览器会再次向后导航,然后在空页面上完成迭代。如果我用 init() 切换 back() 测试仍然失败。
这是测试用例,不是页面对象命令。请帮助
ChromeDriver v.2.28.455517
硒 v2.53.0
browser.elements('css selector', 'specific element', function(allLinks) {
allLinks.value.forEach(function(index) {
console.log('Element value is ' + index.ELEMENT)
browser.elementIdClick(index.ELEMENT, function(res) {
this.waitForElementVisible('body', 2000);
this.back();
this.pause(1000);
});
})
});
我已经让它与以下内容一起工作(下面的片段以防万一有人会为此而苦恼)。虽然我不太喜欢这个解决方案,因为它非常不稳定。如果有人有更好的工作示例,请分享它,保证给你荣誉!
'links': function(browser) {
browser.elements('css selector', '#footer .footerlist .links li a', function(res) {
for (let i = 1; i < res.value.length; i++) {
browser.click('#footer .footerlist .links li:nth-child(' + i + ') a');
browser.pause(2000);
browser.waitForElementVisible('body', 1000);
browser.url('');
}
})
}
我正在尝试遍历 link 并在每次单击时断言页面存在并 return 返回。到目前为止,我已经在测试用例中使用了这个函数。问题在于,在单击第一个 link 并向后导航后,浏览器会再次向后导航,然后在空页面上完成迭代。如果我用 init() 切换 back() 测试仍然失败。 这是测试用例,不是页面对象命令。请帮助
ChromeDriver v.2.28.455517 硒 v2.53.0
browser.elements('css selector', 'specific element', function(allLinks) {
allLinks.value.forEach(function(index) {
console.log('Element value is ' + index.ELEMENT)
browser.elementIdClick(index.ELEMENT, function(res) {
this.waitForElementVisible('body', 2000);
this.back();
this.pause(1000);
});
})
});
我已经让它与以下内容一起工作(下面的片段以防万一有人会为此而苦恼)。虽然我不太喜欢这个解决方案,因为它非常不稳定。如果有人有更好的工作示例,请分享它,保证给你荣誉!
'links': function(browser) {
browser.elements('css selector', '#footer .footerlist .links li a', function(res) {
for (let i = 1; i < res.value.length; i++) {
browser.click('#footer .footerlist .links li:nth-child(' + i + ') a');
browser.pause(2000);
browser.waitForElementVisible('body', 1000);
browser.url('');
}
})
}