【发布时间】:2018-08-02 06:23:31
【问题描述】:
UI 自动化测试 我的应用程序周围都有 toast 消息,有时我会收到多个 toasts,这会阻止单击应用程序的其他部分。这意味着我必须先关闭它们才能与其他按钮交互。 我写了一个 if else 语句来关闭它们。当只有一个时它起作用。当吐司超过 2 次时,它会失败。
- 我正在使用 JS 和 Node js
- 使用 Webdriverio 和 Mocha
- 这是 toastr 库https://github.com/CodeSeven/toastr
谁能告诉我我错过了什么?
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');
}
}
}
【问题讨论】:
-
有一个
preventDuplicates选项。尝试将其设置为true。
标签: javascript automation webdriver webdriver-io toastr