【问题标题】:How can i wait for some text without stopping the execution of the test?如何在不停止执行测试的情况下等待一些文本?
【发布时间】:2019-01-01 23:06:17
【问题描述】:

我正在使用 CodeceptJSWebdriverIO 助手进行一些端到端测试,我想在我的 Vue.js SPA 中等待一条错误消息。 我想知道是否有办法在测试运行期间异步等待文本。我不想使用wait(),因为这会增加我的测试持续时间,相反我希望这样,在测试运行期间,如果它看到一些“错误”文本,则测试失败。 就像dontSee() 函数但是在我测试的背景下,我不能很好地解释它。

【问题讨论】:

  • 您能否发布一些代码来说明您迄今为止所做的尝试?在我看来,这似乎是您想要使用 Promise 的情况。

标签: vue.js webdriver-io end-to-end codeceptjs


【解决方案1】:

例如验证错误不会立即出现,所以如果我在页面中看到该标签,我需要等待。我不想在十秒钟内停止我的测试,我只想在几秒钟内为该标签设置一个“观察者”之类的东西。

I.click('#btnSave');
//I.wait(10);
I.dontSee('Error validate');
I.waitForText('Save successful', 5);

waitForText() 非常适合相反的需求。没有像waitForTextToFail() 这样的功能。

【讨论】:

    【解决方案2】:

    我不确定我是否完全理解您的问题,但我认为您可能正在寻找类似的内容:http://webdriver.io/api/utility/waitForVisible.html

    您会注意到它有一个名为reverse 的参数,可以让您断言相反的情况。

    它可能看起来像这样:browser.waitForVisible('#elem', 3000, true);

    reverse 标志也适用于 waitForText 方法。

    【讨论】:

    • 我不知道这个reverse 参数,它非常适合我的意图。不幸的是codecept的参数不同,没有这个功能。
    • 如果是这种情况,请看这里:codecept.io/acceptance/#waiting 看起来您可以访问名为 I.dontSeeElement() 的东西
    猜你喜欢
    • 2019-02-01
    • 2021-12-24
    • 2020-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-01
    相关资源
    最近更新 更多