我自动化的角度基于UI。成功登录到主界面后,有时,基于某种逻辑,基于模态TOUR弹出这是间歇性的。我需要点击,如果模式弹出出现,如果不出现然后执行其余继续取消。但我的代码失败
“ElementNotVisibleError:元素没有相互作用”
当我使用以下代码来验证如果元件是可见的。
browser.switchTo().activeElement().then(function() {
browser.sleep(1000);
element(by.id("closeBtn1")).isPresent().then(function(text) {
if (text) {
element(by.id("closeBtn1")).element(by.xpath('span')).click();
}
})
});
以下是你可能寻找:
browser.wait(protractor.ExpectedConditions.visibilityOf($('modal-popup-selector')), 2000)
.then(async function () {
$('modal-popup-cancel-button').click(); // if modal did appear then close it
}, function () {
// do nothing if modal did not appear within 2000 msc.
});
这种方法效果很好,如果你不知道什么是要显示为模式的先决条件,但对方将采取每个模式没有出现一次额外的时间(2000年MSC)。
检查visibilityOf条件的文档。