下面的代码等待元素出现:
var elm = element(by.css('button.submit'));
var EC = protractor.ExpectedConditions;
browser.wait(EC.presenceOf(elm), 5000);
elm.click();
检查按钮是否已启用并且可用于单击的代码:
expect(elm.isEnabled().toBe(false));
在我的情况下,表单验证执行得太快。这样按钮的启用和禁用有点慢。无法捕获元素的状态。上述两个条件都无法检查按钮是否被禁用。
除了使用 browser.sleep(1000)
之外,如何检查按钮禁用状态
最佳答案
就我而言,我创建了一个新的递归函数来识别它是否已启用/存在。
function checkIfDisabled(maxSec, elm, blnDisabled) {
if (maxSec > 0) {
browser.sleep(1000).then(function() {
elm.isDisabled().then(function(bln) {
if (bln != blnDisabled) {
checkIfDisabled(maxSec - 1, elm, blnPresent)
}
});
});
}
}
如果通过 checkIfDisabled(10, elm, false)
它将以 1 秒的间隔检查对象是否被禁用 10 次。
希望能帮助到你。 :)
关于javascript - 如何等待 Protractor 中的按钮禁用状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43601632/