好,所以我已经阅读了 nightwatch.js 中page_objects的用法,但是我仍然遇到问题(我确信这是由于明显的原因和/或简单)。
以http://nightwatchjs.org/guide/#page-objects为指导,我在 page_objects 文件夹中添加了文件 cookieremoval.js 。
module.exports = {
elements: {
removeCookies: {
selector: '.banner_continue--2NyXA'
}
}
}
在我的 nightwatch.conf.js 文件中;
page_objects_path: "tests/functional/config/page_objects",
在我的测试脚本中,我有
module.exports = {
"/cars/road-tax redirects to /car-tax/ ": browser => {
browser.url(browser.launch_url + browser.globals.carReviews)
.assert.urlEquals(browser.launchUrl + "/car-reviews/")
.waitForElementPresent('@cookieRemove', 3000)
.click('@cookieRemove')
.end();
},
};
但是,当我运行测试时,我不断读取错误;
Timed out while waiting for element <@cookieRemove>
有什么想法为什么不起作用?
非常感谢
答案 0 :(得分:1)
首先,您从未实例化页面对象。您要让浏览器对象搜索未知元素,这就是它超时的原因。您的代码应该在测试脚本中看起来像这样:continue
,然后使用此对象访问页面对象中的那些变量和函数。例如,如果您想访问remove cookie元素,则可以执行var cookieRemoval = browser.page.cookieremoval();
。
第二,您将必须知道何时使用全局cookieRemoval.click('@removeCookies');
对象以及何时使用页面对象。如果您需要访问页面对象中的某些内容,则显然可以使用页面对象来调用函数或访问变量。否则,browser
将不知道您要查找的元素存在。希望这对您有所帮助,我肯定会花更多的时间来学习有关对象的知识,尤其是在nightwatch.js中如何使用它们。