java - 如何修复“java.lang.IndexOutOfBoundsException:索引:1,大小:1”问题
问题描述
我正在尝试迭代元素,我必须在其中获取每个元素的文本主体,但是在打印第一个元素主体之后,下一个元素主体我得到“java.lang.IndexOutOfBoundsException:索引:1,大小:1” . 我知道这是非常简单的修复,但我无法修复它。请帮我解决这个问题。
在我下面的代码中,当“String text = KpiText.get(i).getText();” 第二次打印我收到“java.lang.IndexOutOfBoundsException:索引:1,大小:1”错误。
public void checkKPIValuesForTeam() throws InterruptedException{
List<WebElement> userNames = DifferentUsers.findElements(By.xpath("//div[@class='radio sfa-radio-red']"));
System.out.println(userNames.size());
int maxLength = userNames.size();
for(int i=0;i<maxLength;i++){
WebElement namesOfUsers = userNames.get(i);
System.out.println(namesOfUsers);
namesOfUsers.click();
List<WebElement> KpiText = KPIValues.findElements(By.xpath("//*[@id='main-content-app']/div/div[2]/div/div/div[2]/div[2]/div[1]/div/div[1]"));
System.out.println(KpiText.size());
String text = KpiText.get(i).getText();
System.out.println(text);
}
预期它应该打印所有元素的主体以进行迭代。
解决方案
问题很简单。您正在使用值“i”来访问“KpiText”数组。在这种情况下,您的数组只有一个元素,因此索引 1 超出范围,如异常堆栈跟踪所述。
如果你想打印它们,你应该这样做:
for (WebElement element : KpiText)
System.out.println(element.getText());
推荐阅读
- flutter - 这个“内存不足”错误怎么会发生?
- flutter - Flutter 中的 FutureBuilder - 调用 API 并使用地图标记的响应
- html - 为什么响应功能不起作用?
- linux - 如何在linux中检查日期是否更改
- elasticsearch - 如果作者姓名不是文档ID,如何在多个类别中查找同一作者写作的记录
- ruby-on-rails - 谷歌omniauth rails与设计身份验证失败
- gitkraken - 让 GitKraken 忘记 GitHub 凭据
- postgresql - 复合外键没有唯一约束,PostgreSQL
- php - Wordpress 分页无法正确显示
- jfoenix - 使用按钮的 JFoenix 对话框