【问题标题】:Get Text from Auto Suggest Dropdown not working in Selenium [duplicate]从自动建议下拉列表中获取文本在 Selenium 中不起作用 [重复]
【发布时间】:2025-12-09 18:10:02
【问题描述】:

我正在尝试使用 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();


}

【问题讨论】:

  • 您能打印 t 并告诉我们您看到的输出。
  • 它不使用 getText 打印任何内容。我刚刚更新了上面的代码。所以上面代码的输出是:hello
  • 除 getText() 之外的其他一切工作正常
  • 当您在该字段中键入内容时自动填充列表时,我尝试了与 google.com 相同的测试用例。我假设您的网站也类似于谷歌的搜索字段。问题是当您按下向下箭头时突出显示的文本未添加回输入 html 标记。您需要找到该自动填充的实际 xpath。
  • 在您的脚本中尝试以下代码,然后您就可以了解您需要查找的内容。 driver.get("https://google.com") driver.findElement(By.xpath("//input[@title='Search']")).sendKeys("to") driver.findElement(By.xpath("//input[@title='Search']")).sendKeys(Keys.DOWN) driver.findElement(By.xpath("//input[@title='Search']")).sendKeys(Keys.DOWN) driver.findElement(By.xpath("//input[@title='Search']")).sendKeys(Keys.DOWN) String t= driver.findElement(By.xpath("//li[1]/div[contains(@class,'suggestions-inner-container')]//span")).getText() println(t)

标签: java selenium-webdriver


【解决方案1】:

通常自动提示结果需要一些时间才能出现,所以如果您在发送to 后立即执行sendKeys(Keys.DOWN),很可能还没有出现自动提示,这样DOWN 键就没有效果。要检查是否是这种情况(仅用于测试的开发目的)放置睡眠 10 秒,并检查睡眠时您认为应该出现的文本是否实际出现。

  • 如果确实出现了,那么您应该实施某种智能等待结果出现。
  • 如果没有出现,可能还有其他问题,在这种情况下,如果您可以在出现自动提示后发布页面的 html,将会非常有用。

【讨论】:

    最近更新 更多