Selenium:我应该选择什么样的预期条件

时间:2016-05-04 14:04:16

标签: java selenium

我想找到Select WebElement

WebElement select = driver.findElement(By.id("gender"));

因此,如果我想使用ExpectedConditions等待,然后使用我的元素selectByVisibleTextselectByValue ... 我应该选择ExpectedConditionspresenceOfElementLocatedelementToBeClickable

2 个答案:

答案 0 :(得分:1)

elementToBeClickable应该适合 - 它等待一个元素既可见又启用:

WebDriverWait wait = new WebDriverWait(driver, 10);
WebElement select = wait.until(ExpectedConditions.elementToBeClickable(By.id("gender")));

Select genderDropdown = new Select(select); 
genderDropdown.selectByVisibleText("male");

答案 1 :(得分:0)

嗨,按照官方文档形式selenium java doc

2.5

presenceOfElementLocated(By locator)
An expectation for checking that an element is present on the DOM of a page.

并且他们没有定义/提及哪个更好或没有,两者都很好,您可以自由选择。但在我个人看来,它更适合

elementToBeClickable(By locator)
An expectation for checking an element is visible and enabled such that you can click it.

,因为

elementToBeClickable(By locator)

所以如果你选择 presenceOfElementLocated(通过定位器)那么你可能会遇到上面的错误,因为它只会等到元素在DOM中可用后一旦可用它将允许其他操作作为它清楚地写在官方文件中,你可以清楚地看到上面。

您还可以在http://seleniumhq.github.io/selenium/docs/api/java/index.html

阅读更多选项

希望这对你有意义,谢谢