Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/442.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AngularJs E2E如何测试DOM中是否存在元素_Javascript_Angularjs_Integration Testing_Functional Testing - Fatal编程技术网

Javascript AngularJs E2E如何测试DOM中是否存在元素

Javascript AngularJs E2E如何测试DOM中是否存在元素,javascript,angularjs,integration-testing,functional-testing,Javascript,Angularjs,Integration Testing,Functional Testing,在我的角度e2e测试中,我想知道DOM上是否存在元素,这不是测试预期,只是我需要的条件 我试着去做 element(".logout-button:visible").count() > 0 element(".logout-button:visible").query(element, callback) 但是count()返回一个未来,并且不会在expect()之外工作。似乎无法在回调解析时添加回调 我试着去做 element(".logout-button:visible")

在我的角度e2e测试中,我想知道DOM上是否存在元素,这不是测试预期,只是我需要的条件

我试着去做

 element(".logout-button:visible").count() > 0
element(".logout-button:visible").query(element, callback)
但是
count()
返回一个未来,并且不会在
expect()之外工作。似乎无法在回调解析时添加回调

我试着去做

 element(".logout-button:visible").count() > 0
element(".logout-button:visible").query(element, callback)
但是,当元素不存在时,如果不费心进入回调函数,就会抛出一个异常。那么,我应该如何完成这个相当简单的任务呢


谢谢

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

if($('#some-element:visible').length){
    //do something
}
或者,您可以休眠()测试,直到您知道条件满足为止。例如:

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

谢谢你的回答。我将尝试一下jquery,但我不确定它是否能工作,因为我不确定它是否能与angular的渲染周期一起工作。这导致了第二种选择,即使用sleep(),这是我们希望避免的。它会减慢应用程序的速度并引入一些随机性(因为您永远不知道等待的时间足够长)。