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選擇器」嗎?
謝謝!