我正在自动执行基于角度的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();
}
})
});
答案 0 :(得分:0)
您可能正在寻找的是这里
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条件文档。