我想显示链接和链接名称的总数,我有我的代码,但它有IndexOutOfBoundsException错误
String BaseURL = "http://istp.in/changathionlinebeta/index.php";
WebDriver wd = new FirefoxDriver();
wd.get(BaseURL);
// get size
java.util.List<WebElement> links = wd.findElements(By.tagName("a"));
System.out.println("Total Number Of Links: " + links.size());
// display links
for (int i = 0; i <= links.size(); i++) {
System.out.println(links.get(i).getText());
links.get(i).click();
wd.navigate().back();
}
答案 0 :(得分:1)
for (int i = 0; i < links.size(); i++) {
...
}
将<=
替换为<
在java.util.List滚动到size
方法。
它返回元素的总数,例如23.但是,您正在检查i=0
到i<=23
实际上是24个元素。
从i=0
到i<links.size()
的迭代会检查23个元素。
答案 1 :(得分:1)
使用
i < links.size()
而不是
i <= links.size() because size return 23 but index start from 0 that means the last(23rd) element index is 22
之后的一件重要事情
wd.navigate().back();
你的代码会显示错误。所以试试下面的内容;
String BaseURL = "http://istp.in/changathionlinebeta/index.php";
WebDriver wd = new FirefoxDriver();
wd.get(BaseURL);
// get size
java.util.List<WebElement> links = wd.findElements(By.tagName("a"));
System.out.println("Total Number Of Links: " + links.size());
int size = links.size();
// display links
for (int i = 0; i < size; i++) {
java.util.List<WebElement> linksloop = wd.findElements(By.tagName("a"));
System.out.println(linksloop.get(i).getText());
linksloop.get(i).click();
wd.navigate().back();
Thread.sleep(3000);
}