[英]How to clear field using nightwatch framework?
我正在嘗試使用不同的方式清除輸入字段:
我有以下代碼對我有用
.setValue('field, [
browser.Keys.CONTROL,
"a",
browser.Keys.DELETE,
])
您是否嘗試清除值,設置空值? 像這樣
.setValue('field', '')
您是否嘗試過使用 Webriver-Key 命令刪除輸入?
在我的項目中,我這樣做:
for (let i = 0; i < amountChars; i++) {
browser.keys(WEBDRIVER_KEYS['Backspace']);
}
WEBDRIVER_KEYS 是 spectron-keys npm 包的一部分。
我做了一個這樣的自定義命令:
this.waitForElementVisible(fieldSelector)
.execute(
function (fieldSelector) {
const field = document.querySelector(fieldSelector);
field.value = null;
},
[fieldSelector]
);
然后在測試文件中,我只是這樣稱呼它:
browser.clearField(fieldSelector)
對我來說,這就像一個魅力:
browser.getValue('css selector', '#id', (textValue) => {
for(let i = 0; i < textValue.value.length; i ++) {
this.setValue('#id', '\u0008');
}
});
不得不想出這種解決方案,因為提供的任何解決方案都不適合我。
browser.clearValue('yourTargetFieldSelector')
所以在使用 Page 對象的情況下:
yourPageObjectInstance.clearValue('@yourTargetFieldSelector')
我今天真的很受這個問題的困擾,所以我分享了我的解決方案,因為其他解決方案都不適用於 chrome 和 firefox:
exports.command = function (fieldSelector) {
const browserName = this.options.desiredCapabilities.browserName;
if (browserName === 'chrome') {
this.getValue(fieldSelector, function (result) {
this.setValue(fieldSelector, [...(result.value || '')].map(char => '\u0008'));
});
} else {
this.clearValue(fieldSelector);
}
return this;
};
這是一個為 chrome 做一件事而為 Firefox 做另一件事的命令
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.