All*_*ate 12 javascript nightwatch.js
我正在使用夜视仪"0.8.6".根据页面上的文档,我创建了一个pages/login.js文件并将目录添加到配置文件中:
module.exports = {
url: function() {
return this.launchUrl;
}
};
Run Code Online (Sandbox Code Playgroud)
文档提到this.api,但那不是客户端/浏览器的属性. this.launchUrl然而,显然是可用的.
我更改了现有测试以使用它:
module.exports = {
'Login page has a login button' : function (browser) {
browser
.url(browser.page.login().url())
.waitForElementVisible('body', 10000)
.assert.containsText('button', 'SIGN IN')
.end();
}
}
Run Code Online (Sandbox Code Playgroud)
测试现在失败了..url尝试打开selenium data:,,而不是this.launchUrl的值,即localhost:3000.
页面对象显然是在登录测试的上下文中进行评估的,因此页面对象中的这个应该有this.launchUrl.潜入源代码我看到混合中还有页面包装器对象,不知何故.
如何在0.8.6中正确创建和使用页面对象?
小智 6
我想你可以尝试添加一个var来调用login.js页面.像这样:
module.exports = {
'Login page has a login button' : function (browser) {
var LoginPage = browser.page.login();
LoginPage.navigate();
LoginPage
.waitForElementVisible('body', 10000)
.assert.containsText('button', 'SIGN IN')
.end();
}
}
Run Code Online (Sandbox Code Playgroud)