Reputation: 326
On https://www.zillow.com I am trying to verify search using auto suggestion box. I have written below code:
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();
}
Here for auto suggestion list I am using following xpath but it doesn't work at run time:"//ul[@role='listbox']//li" Can anybody guide where I am wrong. Note:on this website autosuggestion is starts to be displayed after 3chars in search field.
Upvotes: 0
Views: 127
Reputation: 979
Here my friend. Please try to execute the below code. You can now try to fix your issue with this simple solution.
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();
}
Upvotes: 1