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

Java 如何使用Selenium选择文本框中提供的选项,java,selenium-webdriver,Java,Selenium Webdriver,链接: 场景:在“查找预测”文本框中键入“正在阅读”。这显示了两个选项。如何使用Selenium WebDriver选择一个选项 我正在使用以下命令键入“reading” 使用以下定位器单击第一个元素(键入后显示的第一个建议): 同样,可以通过更改定位器来单击其他图元。例如,选择第二个元素: driver.findElement(By.cssSelector("div[class='locator-suggestions locator-suggestions-default'] li:nth-

链接:

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

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


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

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

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”)在字段中键入“reading”
  • 然后等待元素可见
  • 然后尝试上面提到的代码来选择所需的元素

希望这能有所帮助。

我按照您的建议添加了explict wait,这在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();
driver.findElement(By.cssSelector("div[class='locator-suggestions locator-suggestions-default'] li:nth-child(2)")).click();
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();