自动建议列表的 XPath 不起作用
XPath for auto-suggestion list is not working
在 https://www.zillow.com 我正在尝试使用自动建议框验证搜索。
我写了下面的代码:
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,但它在 运行 时间不起作用:"//ul[@role='listbox']//li"
谁能指导我哪里错了。
Note:on 此网站的自动建议在搜索字段中显示 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();
}
在 https://www.zillow.com 我正在尝试使用自动建议框验证搜索。 我写了下面的代码:
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,但它在 运行 时间不起作用:"//ul[@role='listbox']//li" 谁能指导我哪里错了。 Note:on 此网站的自动建议在搜索字段中显示 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();
}