每当我尝试等待从我的量角器测试正在测试的网页上的当前DOM树中删除DOM元素时,我就遇到了这个问题.当我尝试等待DOM元素被另一个线程中的user2912739提供的这种漂亮的技术隐藏时,我已经掌握了它.
var el = element(by.css('.your-css-class'));
return browser.wait(protractor.until.elementIsNotVisible(el));
Run Code Online (Sandbox Code Playgroud)
这很不错.但是,当等待从DOM树中删除的元素时.isDisplayed(),.isPresent()或者上面的行似乎都不起作用.测试将继续运行,但看起来它正在尝试获取该元素但从未成功,因此它最终会根据配置文件的超时设置超时.例如.这是日志.
超时:等待规格完成30000毫秒后超时
每当您处理测试是否从DOM树中删除元素时,这种情况的用例可能非常频繁,例如,当用户单击取消该模态元素的操作时,关闭并从页面中删除的模式,或者您只想"删除"的元素,以便它不再存在于页面上.因此,在测试中,您只想在从DOM树中删除后立即继续测试运行.
我搜索了量角器和web驱动程序api,似乎没有api可以完成这项工作.