我在使用Selenium的代码中看到了FluentWait
和WebDriverWait
。 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秒?
答案 0 :(得分:10)
在您的示例中wait.until(ExpectedConditions...)
会在超时之前持续查看linkText
'帐号'(每0.5秒)18秒。
WebDriverWait
是FluentWait<WebDriver>
的子类。
在FluentWait
中,您有更多选项可供配置,以及最长等待时间,如轮询间隔,忽略异常等。此外,在您的代码中,您无需等待,然后在findElement
中下一步,你可以这样做:
WebElement element = wait.until(
ExpectedConditions.elementToBeClickable(By.linkText("Account")));