链接:http://www.bbc.com/weather/
场景:在查找预测文本框中键入“阅读”。这显示了2个选项。如何使用Selenium WebDriver选择一个选项?
我使用以下命令键入“reading”
driver.findElement(By.id("locator-form-search")).sendKeys("Reading");
答案 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");
希望这有帮助。