List<WebElement> findElement = (List<WebElement>) driver.findElement(By.tagName("a"));
List<WebElement> links = findElement;
System.out.println(links.size());
for (int i = 1; i<=links.size(); i=i+1)
{
System.out.println(links.get(i).getText());
}
当我尝试运行此代码时,它显示一些问题:
Exception in thread "main" java.lang.ClassCastException: org.openqa.selenium.remote.RemoteWebElement cannot be cast to java.util.List
at Home_Screen.Home.main(Home.java:60)
我使用谷歌浏览器运行这个selenium webdriver 3.0
错误说明了一切:
Exception in thread "main" java.lang.ClassCastException: org.openqa.selenium.remote.RemoteWebElement cannot be cast to java.util.List
at Home_Screen.Home.main(Home.java:60)
当您尝试在findElement(By.tagName("a")
中存储List<WebElement>
(返回单个WebElement)的输出时,JVM会抱怨java.lang.ClassCastException,因为RemoteWebElement的实例无法转换为java.util.List。
如果您尝试在每个<a>
标记内打印文本,可以按照以下代码块使用增强的for()
循环:
List<WebElement> find_all_a_elements = driver.findElements(By.tagName("a"));
for (WebElement ele:find_all_a_elements)
{
System.out.println(ele.getText());
}