如何将xpath分成单独的文件并在夜间表自动化测试中使用它?
编辑: 我运行页面对象模式示例,发现了一些错误。 错误:TypeError:browser.page.url不是函数
请帮助解决这个问题。
module.exports = {
url: 'http://localhost:63916/Login/Login',
elements: {
username: {
selector: '//*[@id="inputName"]',
locateStrategy: 'xpath'
}
}
};
module.exports = (function(settings) {
settings.test_workers = false;
return settings;
})(require('./nightwatch.json'));
//const data = require('./data.js')
module.exports = {
'Login' : function (browser) {
var page = browser.page.url();
page.navigate()
.setValue('@username', 'peter')
browser.end()
}
};
答案 0 :(得分:1)
假设页面对象在pages
目录中定义。您需要更改nightwatch.conf.js
,如下所示
<强> nightwatch.conf.js 强>
module.exports = (function(settings) {
settings.test_workers = false;
settings.page_objects_path = "./pages";
return settings;
})(require('./nightwatch.json'));
您的pages
有一个名为main.js
的文件
信息页/ main.js 强>
module.exports = {
url: 'https://gmail.com',
elements: {
username: {
selector: '//*[@id="identifierId"]',
locateStrategy: 'xpath'
},
next: {
selector: '#identifierNext span',
locateStrategy: 'css'
}
}
};
然后你测试就像下面
<强>测试/ test.main.js 强>
module.exports = {
'Login' : function (browser) {
var page = browser.page.main();
page.navigate()
.setValue('@username', 'peterlalwani')
.click('@next')
.waitForElementNotPresent("@username", 10000);
browser.saveScreenshot("./so.png")
browser.end()
}
};
现在,当您运行它时,它会创建一个so.png
我创建了一个样本仓库供您克隆并查看上面的
https://github.com/tarunlalwani/nightwatch-page-object-so.git
PS:请务必注意var page = browser.page.main();
表示它会从main.js
文件夹加载pages
。