【问题标题】:How to wait for DOM to load in protractor tests如何在量角器测试中等待 DOM 加载
【发布时间】:2014-10-17 02:15:28
【问题描述】:

我通过“browser.get(url)”在浏览器中点击 url,然后我期待屏幕上出现一些东西。但是我的测试用例失败了,因为加载页面需要一些时间,并且测试用例在页面加载之前执行。那么有没有一种方法可以让我等待 DOM 加载,然后执行其余的测试用例。我不想进入睡眠状态,因为加载页面的时间并不一致,并且执行测试是不必要的延迟。

我正在寻找一些解决方案,我们可以等待 DOM 加载,然后我们去执行下一个测试。

【问题讨论】:

    标签: angularjs protractor


    【解决方案1】:

    我通过等待某些特定元素出现在屏幕上然后执行下一个活动来解决这个问题:这是代码,我如何等待元素:

    browser.wait(function(){
        return browser.driver.isElementPresent(by.id(elementId));
    },30000);
    

    因此,如果您怀疑在元素出现在屏幕上之前执行可能会发生,那么只需等待某个元素出现在屏幕上,然后执行下一个活动。

    希望这会帮助其他面临同样问题的人。

    【讨论】:

    • 失败:browser.driver.isElementPresent 不是函数
    【解决方案2】:

    您可以在配置中为脚本设置超时

    jasmineNodeOpts: {defaultTimeoutInterval: 70000}
    

    这将等待 AT MAX 指定的时间。

    【讨论】:

    • 超时不会等待所有元素加载,我们可能会比加载页面更频繁地遇到超时错误
    猜你喜欢
    • 1970-01-01
    • 2016-06-30
    • 2018-03-06
    • 1970-01-01
    • 2015-07-24
    • 1970-01-01
    • 2016-04-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多