【发布时间】:2019-01-25 10:32:06
【问题描述】:
我正在尝试迭代元素,我必须在其中获取每个元素的文本正文,但是在打印第一个元素正文之后,下一个元素正文我得到“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);
}
预计它应该打印所有元素的主体以进行迭代。
【问题讨论】:
-
在执行 KpiText.get(i) 之前,您必须验证该索引 i 是否存在元素
-
任何代码更改?
-
只需在该行之前添加一个 if
-
您对 userNames 集合和 KpiText 集合使用相同的索引。显然这些集合有不同的大小
标签: java selenium-webdriver appium-android