【发布时间】:2018-09-19 23:57:15
【问题描述】:
如何检查量角器中没有显示元素?
我对带有返回真或假的参数的泛型函数感兴趣。我会在测试中多次使用它。
【问题讨论】:
-
您是否尝试过使用
invisibilityOf()预期条件函数?
标签: protractor end-to-end
如何检查量角器中没有显示元素?
我对带有返回真或假的参数的泛型函数感兴趣。我会在测试中多次使用它。
【问题讨论】:
invisibilityOf()预期条件函数?
标签: protractor end-to-end
.isDisplayed() 是你的函数:
expect(elm.isDisplayed()).toBe(false); // elm is not visible
【讨论】:
- Failed: No element found using locator: By(css selector, .thing)
.isPresent()。
此外,如果您不是在做期望,而是在等待某些东西消失,您可以这样做:
browser.wait(function () {
return elm.isDisplayed().then(function(displayed) {
return !displayed;
});
}, 5000);
【讨论】:
一种方法是使用 Protractor 的内置 Expected Conditions.invisibilityOf 方法。它不返回真/假,但如果为假则抛出错误。
import { browser, by, element, ExpectedConditions } from 'protractor';
const elToFind = element(by.css('.thing')),
it('elToFind is hidden or not present', () => {
try {
browser.wait(ExpectedConditions.invisibilityOf(elToFind), 5000);
} catch(err) {
// the statement threw an error (and thus is false)
// continue your test here for the 'false' case
}
// the statement executed successfully (and thus is true)
// continue your test here for the 'true' case
});
如果上面抛出错误,您的测试将失败。否则,它通过。
文档: https://www.protractortest.org/#/api?view=ProtractorExpectedConditions.prototype.invisibilityOf
【讨论】: