如何使用Selenium选择文本框中提供的选项

时间:2015-09-29 20:25:11

标签: java selenium-webdriver

链接:http://www.bbc.com/weather/

场景:在查找预测文本框中键入“阅读”。这显示了2个选项。如何使用Selenium WebDriver选择一个选项?

我使用以下命令键入“reading”

driver.findElement(By.id("locator-form-search")).sendKeys("Reading");

2 个答案:

答案 0 :(得分:2)

我按照你的建议添加了明确的等待,这对css路径进行了一些小改动。这就是我所做的:

WebElement suggestedList = new WebDriverWait(driver, 15)
            .until(ExpectedConditions.elementToBeClickable(By
                    .cssSelector("div[class='locator-suggestions locator-suggestions-default'] >ul >li:nth-of-type(1)")));
    driver.findElement(
            By.cssSelector("div[class='locator-suggestions locator-suggestions-default'] >ul >li:nth-of-type(1)"))
            .click();

答案 1 :(得分:0)

使用以下定位器单击第一个元素(键入后显示的第一个建议):

driver.findElement(By.cssSelector("div[class='locator-suggestions locator-suggestions-default'] li:nth-child(1)")).click();

同样,您可以通过更改定位器来单击其他元素。例如,选择第二个元素:

driver.findElement(By.cssSelector("div[class='locator-suggestions locator-suggestions-default'] li:nth-child(2)")).click();

只是要添加到此处,您可能需要等待元素/建议(您尝试选择)才能显示,然后再尝试点击这些元素/建议。使用/搜索适当的等待方法进行测试。 所以,

  • 首先你要输入"阅读"您正在使用driver.findElement(By.cssSelector("input#locator-form-search")).sendKeys("Reading");
  • 进行操作
  • 然后等待元素可见
  • 然后尝试上面提到的代码来选择所需的元素。

希望这有帮助。