【问题标题】:AngularJs E2E how to test if an element exists in DOMAngularJs E2E如何测试DOM中是否存在元素
【发布时间】:2013-04-30 14:55:37
【问题描述】:

在我的角度 e2e 测试中,我希望能够判断一个元素是否存在于 DOM 上,这不是测试期望,只是我需要的一个条件。

我试过了

 element(".logout-button:visible").count() > 0

但是count() 返回一个未来并且不能在expect() 之外工作。似乎没有办法在解析时添加回调。

我试过了

element(".logout-button:visible").query(element, callback)

但是当元素不存在而不费心进入我的回调函数时,这个会引发异常。那么我应该如何完成这个相当简单的任务呢?

谢谢!

【问题讨论】:

    标签: javascript angularjs integration-testing functional-testing


    【解决方案1】:

    由于 Angular 场景包含 Jquery,您应该能够使用 jQuery 检查特定条件。

    if($('#some-element:visible').length){
        //do something
    }
    

    或者,您可以 sleep() 测试,直到您知道满足条件为止。例如:

    element('#some-button').click();
    sleep(10);
    expect(element('#new-element:visibile').count()).toBe(1);
    

    【讨论】:

    • 感谢您的回答。我会试试 jquery,但我不太确定它是否会工作,因为我不确定它是否适用于 Angular 的渲染周期。这导致您使用 sleep() 的第二种选择,这是我们想要避免的。它会减慢应用程序并引入一些随机性(因为您永远不知道等待多长时间才足够)。
    猜你喜欢
    • 2016-02-17
    • 2021-03-04
    • 2013-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-04
    • 1970-01-01
    相关资源
    最近更新 更多