我所有的页面对象看起来都是这样的:
elements: {
header: {
locateStrategy: 'xpath',
selector: "//h3[text()='Welcome']"
},
loginButton: {
locateStrategy: 'xpath',
selector: "//button[text()='Login']"
},
forgotPasswordLink: {
locateStrategy: 'xpath',
selector: "//a[text()='Forgot Password?']"
},
signupButton: {
locateStrategy: 'xpath',
selector: "//button[text()='Signup']"
}
如果我能说“到处都使用xpath”,那会好得多
医生们说您应该能够在您的“测试设置”中设置"use_xpath" : true
,但是我已经在我在nightwatch.json中看到的所有地方尝试过了,它没有任何效果。
(在任何情况下,这是否意味着此设置将影响页面对象文件中的声明,这一点还不完全清楚:该示例仅显示它影响测试用例中的子assert断言调用)。
发布于 2016-04-12 16:02:17
您可以像这样使用javascript函数(取决于您喜欢的创建对象的方式):
var xSelector = function (selector) {
return {
selector: selector,
locateStrategy: 'xpath'
}
};
然后像这样使用它:
elements: {
xxx: xSelector('//a[text()="Bank Details"]')
createStepButton: { selector: '#menu-create-item' },
}
提示:在上面的示例中,createStepButton仍然使用css选择器策略。还可以考虑为元素部分的统一可读性创建一个cssSelector函数。
发布于 2020-01-15 02:56:33
试着设置:
"use_xpath": true
在nightwatch.conf.js
文件中,而不是nightwatch.json
中
为我工作:)
发布于 2019-02-19 07:27:22
也许能帮上忙。
试着设置:
"use_xpath": true
在你的nightwatch.json里
https://stackoverflow.com/questions/36147905
复制