如何断言 NightwatchJS 中的元素列表
How to assert over a list of elements in NightwatchJS
我想用 NightwatchJS 断言给定 class 名称的所有元素是否可见。所以沿着这些路线:
module.exports = {
//some tests
'page changes to English': (browser) => {
browser.click('label[for="switch-language"]').pause(1000);
browser.elements('css selector', '.fr', results => {
for (let i = 0; i < results; ++i) {
browser.expect.element(results[i]).to.be.visible;
}
});
}
};
但是在测试完成后,我得到的输出是 No assertions ran.
感谢 Juhi Saxena 在 following thread 上的回答,我能够找到问题的答案。这是我的代码,供任何可能遇到同样困难的人使用:
module.exports = {
//some tests
'page changes to English': browser => {
browser.click('label[for="switch-language"]').pause(1000);
browser.elements('css selector','.fr', areDisplayed.bind(null, browser, false));
browser.elements('css selector','.en', areDisplayed.bind(null, browser, true));
}
};
function areDisplayed(browser, expected, elements) {
elements.value.forEach(element => {
browser.elementIdDisplayed(element.ELEMENT, result => {
browser.assert.equal(result.value, expected);
});
});
}
我想用 NightwatchJS 断言给定 class 名称的所有元素是否可见。所以沿着这些路线:
module.exports = {
//some tests
'page changes to English': (browser) => {
browser.click('label[for="switch-language"]').pause(1000);
browser.elements('css selector', '.fr', results => {
for (let i = 0; i < results; ++i) {
browser.expect.element(results[i]).to.be.visible;
}
});
}
};
但是在测试完成后,我得到的输出是 No assertions ran.
感谢 Juhi Saxena 在 following thread 上的回答,我能够找到问题的答案。这是我的代码,供任何可能遇到同样困难的人使用:
module.exports = {
//some tests
'page changes to English': browser => {
browser.click('label[for="switch-language"]').pause(1000);
browser.elements('css selector','.fr', areDisplayed.bind(null, browser, false));
browser.elements('css selector','.en', areDisplayed.bind(null, browser, true));
}
};
function areDisplayed(browser, expected, elements) {
elements.value.forEach(element => {
browser.elementIdDisplayed(element.ELEMENT, result => {
browser.assert.equal(result.value, expected);
});
});
}