我所有的页面对象看起来都像这样:
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会更好—都会崩溃”]
The docs说您应该可以在“测试设置”中设置"use_xpath" : true
,但是我已经在nightwatch.json中可以看到的所有位置都进行了尝试,但这没有任何效果。
(尚不清楚,是否表示此设置将影响页面对象文件中的声明,无论如何:该示例仅显示它会影响测试用例中的后续assert调用。
[我所有的页面对象看起来都像这样:元素:{标头:{locateStrategy:'xpath',选择器:“ // h3 [text()='Welcome']”},loginButton:{...
您可以仅使用像这样的javascript函数(取决于您喜欢的创建对象的方式):
var xSelector = function (selector) {
return {
selector: selector,
locateStrategy: 'xpath'
}
};
要解决此问题,您可以遍历元素并为每个元素设置任何给定的定位策略,如下所示:
也许会帮助某人。