无法打印正确的List(java.util)大小

时间:2014-09-25 09:47:00

标签: java webdriver

我已经尝试过这个示例程序,每次运行它时,都会给出“列表中的零项”。我也试过睡觉,只是为了避免页面运行得如此之快以至于无法找到元素。 我做错了什么?

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编程的新手。

1 个答案:

答案 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想要在列表中存储项目之前。