【发布时间】: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)