0
在程序运行时,是否可以改变“页面对象”中“元素”部分的元素?我在运行期间创建对象,并且必须检查对象名称是否存在。守夜 - 改变页面对象元素
我跟着例如,从here:
对象页:
module.exports = {
url: function() {
return 'https://' + this.api.globals.host + '/#/products/';
},
elements: {
product: ".product[data-product-name='%s']"
},
comands: [{
el: function(elementName, data) {
var element = this.elements[elementName.slice(1)];
return util.format(element.selector, data);
}
}]
};
测试程序:
'my test': function (browser) {
var page = browser.page.myPage();
page.click(page.el('@product', 'milk')); // .product[data-product-name='milk']
}
它工作正常,那么远。虽然它返回一个选择器字符串,并且该字符串是正确的但是,我遇到两个问题:
1)试验正在搜索字符串名称,因此,我用的是XPath
选择,但Nightwatch
切换回“CSS选择器”。有没有办法让Nightwatch保持在XPath
模式?
2)虽然上面的“VAR网页”对象使用的页面对象图案是不可能将参数传递,因为它具有从“元素”是一个“元素”指定部分的字符串在我的页面对象文件中。该示例仅适用于“CSS选择器”吗?
谢谢!