在 Nightwatch.js 中创建一个简单的基本页面对象
Creating a simple, basic page object in Nightwatch.js
好的,所以我已经阅读了 nightwatch.js 中 page_objects 的用法,但我仍然遇到问题(这我确信是由于一些显而易见的事情 and/or 简单)。
使用 http://nightwatchjs.org/guide/#page-objects 作为指南,我在我的 page_objects[=35 中添加了文件 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>
知道为什么这不起作用吗?
非常感谢
首先,您从未实例化您的页面对象。您要求浏览器对象搜索未知元素,这就是它超时的原因。你的代码在你的测试脚本中应该看起来像这样: var cookieRemoval = browser.page.cookieremoval();
然后使用这个对象来访问你的页面对象中的那些变量和函数。例如,如果您想访问 remove cookie 元素,那么您可以这样做 cookieRemoval.click('@removeCookies');
.
其次,您必须知道何时使用全局 browser
对象以及何时使用您的页面对象。如果您需要访问页面对象中的某些内容,显然可以使用页面对象来调用函数或访问变量。否则,browser
将不知道您要查找的元素是否存在。希望这对您有所帮助,我肯定会花更多时间了解对象,特别是它们在 nightwatch.js.
中的使用方式
好的,所以我已经阅读了 nightwatch.js 中 page_objects 的用法,但我仍然遇到问题(这我确信是由于一些显而易见的事情 and/or 简单)。
使用 http://nightwatchjs.org/guide/#page-objects 作为指南,我在我的 page_objects[=35 中添加了文件 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>
知道为什么这不起作用吗?
非常感谢
首先,您从未实例化您的页面对象。您要求浏览器对象搜索未知元素,这就是它超时的原因。你的代码在你的测试脚本中应该看起来像这样: var cookieRemoval = browser.page.cookieremoval();
然后使用这个对象来访问你的页面对象中的那些变量和函数。例如,如果您想访问 remove cookie 元素,那么您可以这样做 cookieRemoval.click('@removeCookies');
.
其次,您必须知道何时使用全局 browser
对象以及何时使用您的页面对象。如果您需要访问页面对象中的某些内容,显然可以使用页面对象来调用函数或访问变量。否则,browser
将不知道您要查找的元素是否存在。希望这对您有所帮助,我肯定会花更多时间了解对象,特别是它们在 nightwatch.js.