【发布时间】:2015-01-11 20:54:44
【问题描述】:
使用 Selenium,在最长时间后验证某些内容不在页面上的最佳方式(或设计模式)是什么?
我知道我们可以等待一个带有字符串的元素出现,就像这样:
(new WebDriverWait(driver, 10)).until(new ExpectedCondition<Boolean>() {
public Boolean apply(WebDriver d) {
return d.getTitle().toLowerCase().startsWith("cheese!");
}
});
但是,如果我想确保在 10 秒内,OPPOSITE 为真,并且页面上没有出现任何包含特定文本的元素,该怎么办?基本上,这种情况通常会(但并非总是)达到最大超时。
在我的用例中,重要的是对方法的调用不抛出任何将退出 JUnit/TestNG 测试用例的异常,而是始终允许连续的测试步骤继续并发生最终的 softAsserts。
方法应该有这样的签名:
Boolean verifyElementWithTextDoesNotAppear( By locator, String, text, long timeout )
你们中的任何人都可以使用一种可以最有效地做到这一点的好的设计模式吗?该方法不得在达到超时之前或之后抛出 TimeoutException,也不得抛出任何特定类型的 WebDriverException,并且必须可能返回可靠的布尔结果。
【问题讨论】:
标签: selenium