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

问题描述 投票:-3回答:5

这是我的代码。

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)
selenium-webdriver
5个回答
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);

0
投票

我想你应该用0初始化我。

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

问候


0
投票

该列表为0索引,这意味着它从0运行到lst.size() - 1,从中更改for循环

for (int i = 1; i<=tst.size(); i=i+1) //In your case, runs from 1 to 10(included)

for (int i = 0; i<tst.size(); i=i+1) //For your case, this runs from 0 to 9(included)

0
投票

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

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


0
投票

多谢你们。

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

它为我工作。

© www.soinside.com 2019 - 2024. All rights reserved.