线程“main”中的异常java.lang.IndexOutOfBoundsException:索引:10,大小:10 selenium编程

时间:2018-02-28 08:50:36

标签: selenium-webdriver

这是我的代码。

List<WebElement> tst = driver.findElements(By.xpath(".//*@id='container']/div/div[2]/div/div/div"));




         System.out.println(tst.size());


         Thread.sleep(2000);
         for (int i = 1; i<=tst.size(); i=i+1)
            {

                System.out.println(tst.get(i).getText());
                Thread.sleep(1000);

但是低于错误。请帮我解决

Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 10, Size: 10
    at java.util.ArrayList.rangeCheck(Unknown Source)
    at java.util.ArrayList.get(Unknown Source)
    at Samples.sample2.main(sample2.java:42)

5 个答案:

答案 0 :(得分:1)

一方面,这是一个java代码,而不是一个javascript代码。另一方面,您尝试访问索引为10的元素,但此列表的最后一个元素的索引为9,因为java列表中的索引从0开始(0到9)。你必须从0循环到tst.size() - 1:

List<WebElement> tst = driver.findElements(By.xpath(".//*@id='container']/div/div[2]/div/div/div"));
   System.out.println(tst.size());
           Thread.sleep(2000);
           for(int i=0;i<=tst.size()-1;i++)
           {

           System.out.println(tst.get(i).getText());
           Thread.sleep(1000);

答案 1 :(得分:0)

我认为你应该用0初始化我。

for (int i = 0; i <= tst.size(); i++)

此致

答案 2 :(得分:0)

列表为0索引,表示它从0运行到lst.size() - 1,从

更改for循环
Form1

Show()

答案 3 :(得分:0)

谢谢你们。

for(int i=0;i<=tst.size()-1;i++)

它为我工作。

答案 4 :(得分:0)

请检查您的sysout是否有tst.size()。由于大小是10,我将你的循环改为for(int i = 0; i

根据Array概念,索引从0开始而不是1.因此上述修改应满足您的需要。