Nightwatch:将 xpath 分离到另一个文件中
Nightwatch: Separate xpath into another files
如何将xpath分离成单独的文件并在nightwatch自动化测试中使用?
编辑:
我 运行 一个页面对象模式示例,发现了一些错误。
错误:类型错误: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()
}
};
因此假设页面对象定义在 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
的文件
pages/main.js
module.exports = {
url: 'https://gmail.com',
elements: {
username: {
selector: '//*[@id="identifierId"]',
locateStrategy: 'xpath'
},
next: {
selector: '#identifierNext span',
locateStrategy: 'css'
}
}
};
然后你测试如下
tests/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();
意味着它将从此处的 pages
文件夹加载 main.js
。
如何将xpath分离成单独的文件并在nightwatch自动化测试中使用?
编辑: 我 运行 一个页面对象模式示例,发现了一些错误。 错误:类型错误: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()
}
};
因此假设页面对象定义在 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
pages/main.js
module.exports = {
url: 'https://gmail.com',
elements: {
username: {
selector: '//*[@id="identifierId"]',
locateStrategy: 'xpath'
},
next: {
selector: '#identifierNext span',
locateStrategy: 'css'
}
}
};
然后你测试如下
tests/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();
意味着它将从此处的 pages
文件夹加载 main.js
。