Selenium 自动建议列表的XPath不工作
在上,我尝试使用自动建议框验证搜索。 我写了以下代码:Selenium 自动建议列表的XPath不工作,selenium,selenium-webdriver,xpath,ui-automation,Selenium,Selenium Webdriver,Xpath,Ui Automation,在上,我尝试使用自动建议框验证搜索。 我写了以下代码: public static void verifySearch() { try { WebElement searchbar = driver.findElement(By.id("search-box-input")); searchbar.sendKeys("sea"); // Thread.sleep(10); WebDri
public static void verifySearch() {
try {
WebElement searchbar = driver.findElement(By.id("search-box-input"));
searchbar.sendKeys("sea");
// Thread.sleep(10);
WebDriverWait wait = new WebDriverWait(driver,30);
wait.until(ExpectedConditions.visibilityOfAllElementsLocatedBy(By.xpath("//ul[@role='listbox']/li")));
List<WebElement> list = driver.findElements(By.xpath("//ul[@role='listbox']//li"));
System.out.println("Total no of suggestions in search box:::====> " + list.size());
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i).getText());
if (list.get(i).getText().contains("Seattle WA")) {
/*
* JavascriptExecutor js = (JavascriptExecutor)driver;
* js.executeScript("arguments[0].click();", list.get(i));
*/
list.get(i).click();
break;
}
}
System.out.println("out");
} catch (Exception e) {
// TODO Auto-generated catch block
System.out.println(e);
e.printStackTrace();
}
这里是自动建议列表,我使用了以下xpath,但它在运行时不起作用time://ul[@role='listbox']//li
谁能告诉我哪里错了。
注意:在这个网站上,自动提示在搜索栏中点击3次后开始显示。这里是我的朋友。请尝试执行以下代码。您现在可以尝试用这个简单的解决方案来解决您的问题
try {
WebElement searchbar = driver.findElement(By.id("search-box-input"));
searchbar.click();
for( char character : "sea".toCharArray() )
{
searchbar.sendKeys(String.valueOf(character));
Thread.sleep(2000);
}
List<WebElement> list = driver.findElements(By.xpath("//ul[@role='listbox']//li"));
System.out.println("Total no of suggestions in search box:::====> " + list.size());
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i).getText());
if (list.get(i).getText().contains("Seattle WA")) {
/*
* JavascriptExecutor js = (JavascriptExecutor)driver;
* js.executeScript("arguments[0].click();", list.get(i));
*/
list.get(i).click();
break;
}
}
System.out.println("out");
} catch (Exception e) {
// TODO Auto-generated catch block
System.out.println(e);
e.printStackTrace();
}
首先等待显示自动建议下拉列表,然后比较此if list.geti.getText.containsSeattle,如果您可以随时提供DOM代码段和收到的错误,请等待,我的朋友: