Webdriver.waitUntil无法按预期工作

时间:2017-03-17 12:26:27

标签: javascript node.js selenium selenium-webdriver webdriver-io

我正在使用wedriverio 4.5:

./node_modules/.bin/wdio -v
v4.5.2

我需要等到某个元素存在,如果它不存在,请处理这种情况。

例如:

let element = browser.element('.unexisting');
browser.waitUntil(
        function () {
            return element.isExisting();
        },
        1000,
        'Element is not found.'
);

但是如果页面上不存在元素,webdriver会将我的测试标记为失败并显示消息:'超时超过10000毫秒。尝试减少运行时间或增加测试规范的超时时间(http://webdriver.io/guide/testrunner/timeouts.html);如果返回Promise,请确保它解决。'

  1. 我该如何处理这种情况?

    • 我尝试了try-catch块,但无论如何我看到有关超时和测试失败的相同消息。
    • 我尝试过element.waitForExist(),但行为是相同的
    • 我尝试使用错误处理程序(但没有帮助)

    browser.on('error',function(e){    console.log('处理浏览器错误'); })

  2. 为什么我看不到我的消息'找不到元素'?

  3. 谢谢!

1 个答案:

答案 0 :(得分:0)

确保您的waitForXXX命令不会超过规范超时。如果它确实增加了你的规格超时,在你的情况下是mochaOpts.timeout。点击此处http://webdriver.io/guide/testrunner/timeouts.html#Framework-related-timeouts