我已经看到FluentWait
和WebDriverWait
使用Selenium的代码。 FluentWait
使用轮询技术,即它将每隔固定间隔轮询一次特定WebElement
。我想知道WebDriverWait
如何处理ExpectedConditions
?
请考虑以下 Java 示例:
WebDriverWait wait = new WebDriverWait(driver, 18);
wait.until(ExpectedConditions.elementToBeClickable(By.linkText("Account")));
WebElement element = driver.findElement(By.linkText("Account"));
element.sendKeys(Keys.CONTROL);
element.click();
ExpectedConditions.elementToBeClickable(By.linkText("Account"))
监视linkText("Account")
是否可单击,还是在单击前等待 18 秒?
示例中,wait.until(ExpectedConditions...)
将在超时之前(每 0.5 秒)linkText
"帐户"继续查找 18 秒。
WebDriverWait
是FluentWait<WebDriver>
的一个子类。 FluentWait
您可以配置更多选项,以及最长等待时间,例如轮询间隔、要忽略的异常等。此外,在您的代码中,您无需等待然后在下一步中findElement
,您可以执行以下操作:
WebElement element = wait.until(
ExpectedConditions.elementToBeClickable(By.linkText("Account")));