Selenium webdriver “线程中的异常”;“主要”;java.lang.IndexOutOfBoundsException:索引:23,大小:23

Selenium webdriver “线程中的异常”;“主要”;java.lang.IndexOutOfBoundsException:索引:23,大小:23,selenium-webdriver,Selenium Webdriver,我想显示链接总数和链接名称,我有我的代码,但它有IndexOutOfBoundsException错误 String BaseURL = "http://istp.in/changathionlinebeta/index.php"; WebDriver wd = new FirefoxDriver(); wd.get(BaseURL); // get size java.util.List<WebElement> links = wd.fin

我想显示链接总数和链接名称,我有我的代码,但它有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();
    }
String BaseURL=”http://istp.in/changathionlinebeta/index.php";
WebDriver wd=新的FirefoxDriver();
get(BaseURL);
//变大
java.util.List links=wd.findElements(按.tagName(“a”));
System.out.println(“链接总数:+Links.size());
//显示链接
for(int i=0;i
for(int i=0;i
替换(int i=0;i
{
...
}
替换
使用

您的代码将向您显示一个错误。请尝试下面的方法

  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);
}
String BaseURL=”http://istp.in/changathionlinebeta/index.php";
WebDriver wd=新的FirefoxDriver();
get(BaseURL);
//变大
java.util.List links=wd.findElements(按.tagName(“a”));
System.out.println(“链接总数:+Links.size());
int size=links.size();
//显示链接
对于(int i=0;i
使用

您的代码将向您显示一个错误。请尝试下面的方法

  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);
}
String BaseURL=”http://istp.in/changathionlinebeta/index.php";
WebDriver wd=新的FirefoxDriver();
get(BaseURL);
//变大
java.util.List links=wd.findElements(按.tagName(“a”));
System.out.println(“链接总数:+Links.size());
int size=links.size();
//显示链接
对于(int i=0;i
每次for循环运行时创建
linksLoop
不是不对吗。它应该在循环外部定义。@rupinderjeet47否…当他返回时,驱动程序将找不到上一个dom元素并显示错误…这就是为什么我每次建议他创建linksLoop
java.util.List linksLoop;
然后
>for循环
,然后在
for循环
中初始化
linksLoop
,作为
linksLoop=wd.findElements(按.tagName(“a”))
此代码中分离声明和初始化是否错误?@rupinderjeet47首先在您的机器中运行acmsadik代码,然后查看发生了什么,并给出如何修复该错误的建议……我认为您不熟悉该错误是的,它不起作用,或者IndexOutOfBoundsException错误已被删除,但还有另一个问题em::线程“main”中的异常org.openqa.selenium.ElementNotVisibleException:元素当前不可见,因此可能无法与命令持续时间或超时进行交互:28毫秒每次for循环运行时创建
linksLop
没有错。它应该在循环外定义。@rupinderjeet47否…当驱动程序返回时,将找不到pr前一个dom元素并将显示一个错误…这就是为什么我每次建议他创建linksloop
java.util.List linksloop;
,然后创建
for loop
,然后在
for loop
中初始化
linksloop
作为
linksloop=wd.findElements(按.tagName(“a”))
此代码中分离声明和初始化是否错误?@rupinderjeet47首先在您的机器中运行acmsadik代码,然后查看发生了什么,并给出如何修复该错误的建议……我认为您不熟悉该错误是的,它不起作用,或者IndexOutOfBoundsException错误已被删除,但还有另一个问题em::线程“main”org.openqa.selenium.ElementNotVisibleException中的异常:元素当前不可见,因此可能无法与命令持续时间或超时进行交互:28毫秒
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);
}