关闭webdriver中的toastr

时间:2018-02-22 11:54:46

标签: javascript automation webdriver webdriver-io toastr

UI自动化测试 我在我的应用程序周围都有toast消息,有时我会得到多个toast,这会阻止点击应用程序的其他部分。意思是我必须关闭它们才能与其他按钮交互。 我写了一个if else语句来关闭它们。什么时候才有效。当有超过2个祝酒词时,它会失败。

有人能告诉我我错过了什么吗?

closeToastMessage() {
  let close_toast = $$('.toast-close-button');
  const closeToasts = $$('.toast-close-button');
  let toast_exist = browser.waitForExist('.toast', 5000);

  if (close_toast.value) {
    close_toast.click();
    browser.waitUntil(function() {
      return close_toast.waitForExist(5000, true);
    }, 5000, 'expecte toast to disappear');
  } else if (closeToasts.length) {
    for (let i = 0; i < closeToasts.length; i++) {
      closeToasts[i].click();
      browser.waitUntil(() => {
        return !closeToasts[i].isVisible();
      }, 5000, `Close toast ${i} still visible after 5 s`, 1000);
    } else {
      throw new Error('Oops! toast did NOT disappear');
    }
  }
}

1 个答案:

答案 0 :(得分:0)

有一个preventDuplicates选项。尝试将其设置为true

其他检查选项。

toastr.options = {
  "closeButton": true,       // Allow force-closing 
  "newestOnTop": false,      // Keep the oldest one up-front
  "preventDuplicates": true, // Do not allow duplicates to appear
  "showDuration": 300,      // Time it take to show up, 0.3 sec default
  "hideDuration": 1000,     // Time it take to hide, 1 sec default
  "timeOut": 5000,          // Duration it is displayed, 5 sec default
  "extendedTimeOut": 1000   // Time it takes to hide if hovered, 1 sec default
}

查看他们的demo