Java 从自动建议下拉列表中获取文本在Selenium中不起作用

Java 从自动建议下拉列表中获取文本在Selenium中不起作用,java,selenium-webdriver,Java,Selenium Webdriver,我试图使用Selenium验证AutoSuggest下拉列表中的选定值是否正确。但是使用getText()不会返回任何结果 下面是我的代码 public class AutoSuggestDropdownsTest { public static void main(String[]args) throws InterruptedException { System.setProperty("webdriver.chrome.driver", "/resources/executable

我试图使用Selenium验证AutoSuggest下拉列表中的选定值是否正确。但是使用getText()不会返回任何结果

下面是我的代码

public class AutoSuggestDropdownsTest {

public static void main(String[]args) throws InterruptedException {
   System.setProperty("webdriver.chrome.driver", "/resources/executables/chromedriver") ; 
    WebDriver driver = new ChromeDriver();
    driver.manage().deleteAllCookies();
    driver.get("https://example.com/");
    driver.findElement(By.xpath("//*[@class='stamp remove-sign']")).click();
    driver.findElement(By.xpath("//input[@id='or-search']")).sendKeys("to");
    driver.findElement(By.xpath("//input[@id='or-search']")).sendKeys(Keys.DOWN);
    driver.findElement(By.xpath("//input[@id='or-search']")).sendKeys(Keys.DOWN);
    driver.findElement(By.xpath("//input[@id='or-search']")).sendKeys(Keys.DOWN);
    System.out.println(driver.findElement("//input[@id='or-search']")).getText());
    System.out.println("hello");

    driver.quit();


}

通常,自动建议结果需要一段时间才能显示,因此,如果在将
发送到
后立即执行
发送键(Keys.DOWN)
,则很可能还没有出现自动建议,这样
发送键就没有效果。若要检查是否是这种情况(仅用于测试的开发目的),请放置一个sleep 10s,并检查您认为应该出现的文本在sleep中是否实际出现

  • 如果它确实出现了,那么您应该实现某种智能等待结果出现
  • 如果它没有出现,可能还有另一个问题,在这种情况下,如果您可以在自动搜索出现后发布页面的html,这将非常有用

您可以打印t并让我们知道您看到的输出是什么。它不使用getText打印任何内容。我刚刚更新了上面的代码。因此,上面代码的输出是:helloEverything工作正常,直到除了getText()之外,我在google.com上尝试了相同的测试用例,当您在该字段中键入内容时,列表自动填充。我想你的网站也类似于谷歌搜索领域。问题在于,按下向下箭头时突出显示的文本没有添加回输入html标记。您需要找到自动填充的实际xpath。请在脚本中尝试以下代码,这样您就可以了解需要查找的内容<代码>驱动程序。获取(“https://google.com)driver.findElement(By.xpath(//input[@title='Search'])).sendKeys(“to”)driver.findElement(By.xpath(//input[@title='Search'])).sendKeys(key.DOWN)driver.findElement(By.xpath(//input[@title='Search'])).sendKeys(key.DOWN)driver字符串t=driver.findElement(By.xpath(//li[1]/div[contains(@class,'suggestions-internal-container')]//span”)。getText()println(t)