我用protractor / JUnit编写我的AngularJS测试代码
我愿意测试那个元素不存在.
到目前为止,我使用以下内容:
expect(elem.isPresent()).toBe(false);
这是按预期工作,但它的速度减慢.
我并不想要将状态从isPresent更改为isNotPresent,只是为了在我的测试的某个时刻检查我没有各种元素.
对我而言,测试元素是否同样重要.
我的问题是,非存在的几个测试非常简单,需要花费太多时间;因为它似乎等待超时或其他什么.
我愿意尽快对非存在进行测试.
因此,我尝试了不同的approch,例如:
- expect(element.all(locator).count()).toEqual(0) - ExpectedCondition : seems promising,but I do not see any condition for isNotPresent.
到目前为止,我的想法已经不多了,任何建议都会非常感激
谢谢你的支持
解决方法
你可以做的是减少
implicit wait timeout:
onPrepare: function(){ browser.manage().timeouts().implicitlyWait(2000); },
虽然检查它不会影响测试的其他区域.
另一个选择是使用browser.isElementPresent()而不是纯webdriver的存在性检查的实现,因此,有助于避免量角器到角度的同步:
expect(browser.isElementPresent(elem)).toBe(false);
另见:
> In protractor,browser.isElementPresent vs element.isPresent vs element.isElementPresent