我使用带有像
这样的元素的页面对象['1+1', '1+2', '1+3', '1+4', '1+5', '2+2', '2+3', '2+4', '2+5', '3+3', '3+4', '3+5', '4+4', '4+5', '5+5']
当我的测试运行时,我希望我的按钮被禁用。 我可以添加这样的新元素:
myButton: {
selector: '//button[@ng-click="$clientCtrl.add()"]',
locateStrategy: 'xpath'
}
但是我有很多按钮,所以我会得到一个很大的启用和禁用按钮列表。 所以我想在我的页面对象中编写一个命令,如下所示:
myButtonDisabled: {
selector: '//button[@ng-click="$clientCtrl.add()"][@disabled="disabled"]',
locateStrategy: 'xpath'
}
我在测试中通过
调用var myCommands = {
assertButtonDisabled: function(mybutton) {
this.api
.pause(500)
.useXpath()
.expect.element(mybutton + '[@disabled="disabled"]', 5000).to.be.present;
return this;
}
};
嗯,这失败了,因为我无法将myPageObject.assertButtonDisabled('@myButton');
这样的元素与一个额外的xpath(@myButton
)连接起来。
那么我该怎么做而不是添加多个新元素呢?
答案 0 :(得分:0)
从可维护性的角度来看,以这种方式维护事情要容易得多:
myButton: {
selector: '//button[@ng-click="$clientCtrl.add()"]',
locateStrategy: 'xpath'
}
myButtonDisabled: {
selector: '//button[@ng-click="$clientCtrl.add()"][@disabled="disabled"]',
locateStrategy: 'xpath'
}
只需对这些元素使用正确的命名。