我已经尝试过这个示例程序,每次运行它时,都会给出“列表中的零项”。我也试过睡觉,只是为了避免页面运行得如此之快以至于无法找到元素。 我做错了什么?
driver.get("https://www.google.co.in/");
driver.findElement(By.id("gbqfq")).clear();
driver.findElement(By.id("gbqfq")).sendKeys("test");
List<WebElement> allElements = driver
.findElements(By
.xpath("html/body/div[2]/div[2]/div[1]/div/ul/li"));
Thread.sleep(3000);
System.out.println("there are "+allElements.size()+" items in this list");
PS:我是JAVA编程的新手。
答案 0 :(得分:0)
在上面的代码中,xpath是绝对正确的,它没有任何问题。只是页面变得很快,webdriver无法获得适当的时间来获得有多少项目作为“li”,即列表的大小。
要纠正一种方法是进入一种不是最佳方式的睡眠
另一种方法是使用WebDriverWait
new WebDriverWait(driver, 60).until(ExpectedConditions
.elementToBeClickable(By
.xpath("html/body/div[2]/div[2]/div[1]/div/ul/li")));
应该在yuu想要在列表中存储项目之前。