下面是我们如何在项目中等待元素的示例(应用程序也是 angularjs,我们使用 Java 作为 webdriver):
在我们的 Webdriver 实现中,我们添加了:
private WebDriverWait iWait(int timeoutInSeconds) {
return new WebDriverWait(webDriver, timeoutInSeconds);
}
我们要等待一个元素可见(“可见性意味着该元素不仅被显示,而且高度和宽度都大于0”):
public void waitForElementToAppear(By by, int timeoutInSeconds) {
iWait(timeoutInSeconds).ignoring(StaleElementReferenceException.class).until(ExpectedConditions.visibilityOfElementLocated(by));
}
ExpectedConditions 类提供了许多其他开箱即用的条件,这里有一些:
- elementToBeClickable
- textToBePresentInElement
- 标题包含
- elementSelectionStateToBe
有关更多信息,请查看ExpectedConditions Javadoc
如果需要创建自己的条件,可以使用 ExoectedCondition (no 's') class
ExpectedCondition Javadoc