【问题标题】:Angular e2e doesn't detect an Angular applicationAngular e2e 未检测到 Angular 应用程序
【发布时间】:2017-11-28 20:34:57
【问题描述】:

我正在测试一个登录页面,然后等待加载主页标题以期望为真,但是当我运行测试时,我收到以下消息:

失败:等待异步 Angular 任务完成超时 11 秒后。这可能是因为当前页面不是 角应用。有关更多详细信息,请参阅常见问题解答: https://github.com/angular/protractor/blob/master/docs/timeouts.md#waiting-for-angular

我读了一些东西,但解决方案是设置 browser.waitForAngularEnabled(false);

为什么会这样?我不明白为什么?现在它可以工作了,但更复杂的测试会出现问题吗?

谢谢

【问题讨论】:

    标签: angular protractor angular-e2e


    【解决方案1】:

    Protactor 将等待浏览器中的所有 Angular 任务结束,然后保护器执行下一步。现在使用 browser.waitForAngularEnabled(false) 告诉 protactor 不要等待 Angular 任务完成。

    在您的代码中,您使用的可能是异步代码(如超时、间隔),它不会在给定的 protactor 超时中结束,然后他会抛出错误。

    Protactor 等待 Angular 知道站点渲染完成并且 DOM 中的所有元素都可以访问。

    【讨论】:

    • 所以?我是否必须等待Angular?我如何等待并且在 11 秒后没有超时错误?谢谢
    • 不,如果会发生这种超时错误,请尝试找出 Angular 在浏览器事件循环中在后台做什么。您还可以通过将 getPageTimeout: timeout_in_millis 添加到 Protractor 配置文件来延长超时。当您需要添加 waitForAngular 时,您做错了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-17
    • 2013-08-01
    • 1970-01-01
    • 2023-03-17
    相关资源
    最近更新 更多