如何检查模态弹出窗口是否可见。如果看不见,请绕过检查

时间:2019-02-04 11:27:30

标签: protractor

我正在自动执行基于角度的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();
    }
  })
});

1 个答案:

答案 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条件文档。