使用className的FindallElements不起作用,但使用与xpath相同的代码

时间:2015-05-16 19:12:29

标签: selenium selenium-webdriver getelementsbyclassname

对于练习我正在处理代码并面临一个非常奇怪的问题。我试图使用className找到所有元素的列表。当我检查列表大小时,它返回0但与xpath一起使用时相同的类。我的代码在

之下
    WebDriver driver  = new FirefoxDriver();
    driver.manage().window().maximize();
    driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
    driver.get("http://www.localbanya.com/home/search?searchKeyword=dove");

    driver.findElement(By.xpath("//*[@class='ms-choice']")).click();
    Thread.sleep(2000);
    driver.findElement(By.xpath("//*[@class='ms-drop       bottom']//li[4]/label")).click();
    driver.findElement(By.cssSelector(".proceed-button.button")).click();
    Thread.sleep(1000);
     List<WebElement> prList = driver.findElements(By.xpath("//*[@class='prName']"));

    // This particular code does not work  but same class name used above works 
    //----Interesting not working
    //List<WebElement> prList = driver.findElements(By.className(".prName"));

    System.out.println(prList.size());
    for (WebElement web : prList)
    {
        System.out.println(web.getText());
    }

    //driver.close();
}

1 个答案:

答案 0 :(得分:1)

List<WebElement> prList = driver.findElements(By.className("prName"));

它将起作用,在您使用.时无需使用By.className。使用css选择器时需要.