对于练习我正在处理代码并面临一个非常奇怪的问题。我试图使用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();
}
答案 0 :(得分:1)
List<WebElement> prList = driver.findElements(By.className("prName"));
它将起作用,在您使用.
时无需使用By.className
。使用css选择器时需要.
。