我想按以下顺序将其存储在Arraylist中:
我的代码:
List<WebElement> topcompany = driver.findElements(By.xpath("(//*[name()='svg'])[2]//*[name()='a']//*[name()='text']//*[name()='tspan' and @dy='4']"));
List<WebElement> avg_exp = driver.findElements(By.xpath("(//*[name()='svg'])[2]//*[name()='text' and @x='245']//*[name()='tspan' and @dy='4']"));
List<WebElement> avg_sal = driver.findElements(By.xpath("(//*[name()='svg'])[2]//*[name()='text' and @x='295']//*[name()='tspan' and @dy='4']"));
List<WebElement> inlakhs = driver.findElements(By.xpath("(//*[name()='svg'])[2]//*[name()='text' and @fill='#000000']//*[name()='tspan' and @dy='3.5']"));
List<WebElement> circle_text = driver.findElements(By.xpath("(//*[name()='svg'])[2]//*[name()='a']//*[name()='text' and @fill='#ffffff']//*[name()='tspan' and @dy='3.5']"));
for(int i=0;i<topcompany.size();i++) {
for(int j=4;j<inlakhs.size();j++) {
//main_list.add(new String[] {topcompany.get(i).getText(),avg_exp.get(i).getText(),avg_sal.get(i).getText(),inlakhs.get(j).getText(),circle_text.get(i).getText(),inlakhs.get(j+1).getText()});
}
}
答案 0 :(得分:0)
很难理解您要实现的目标。
但是这是一个起点:如果我们请求的索引为负数或大于或等于数组的大小,则会抛出 ArrayIndexOutOfBoundsException 。
在您的情况下,inlakhs.get(j+1).getText()
会在j
达到 inlakhs.size() - 1
时引发错误,因为这样j
将等于大小列表中的
您必须先解决此问题,然后该错误会消失
答案 1 :(得分:0)
您的问题显然是由访问索引超出范围的列表引起的。运行以下代码进行调试,并找出导致异常的列表尤其如此:
List<WebElement> topcompany = driver.findElements(By.xpath("(//*[name()='svg'])[2]//*[name()='a']//*[name()='text']//*[name()='tspan' and @dy='4']"));
List<WebElement> avg_exp = driver.findElements(By.xpath("(//*[name()='svg'])[2]//*[name()='text' and @x='245']//*[name()='tspan' and @dy='4']"));
List<WebElement> avg_sal = driver.findElements(By.xpath("(//*[name()='svg'])[2]//*[name()='text' and @x='295']//*[name()='tspan' and @dy='4']"));
List<WebElement> inlakhs = driver.findElements(By.xpath("(//*[name()='svg'])[2]//*[name()='text' and @fill='#000000']//*[name()='tspan' and @dy='3.5']"));
List<WebElement> circle_text = driver.findElements(By.xpath("(//*[name()='svg'])[2]//*[name()='a']//*[name()='text' and @fill='#ffffff']//*[name()='tspan' and @dy='3.5']"));
java.util.List<java.util.List<WebElement>> elements = new java.util.ArrayList<java.util.List<WebElement>>();
for(int i=0;i<topcompany.size();i++)
{
for(int j=4;j<inlakhs.size();j++)
{
for (java.util.List<WebElement> list : elements) {
try {
WebElement element = list.get(i);
}
catch (ArrayIndexOutOfBoundsException e) {
System.out.printf("%s caused an exception at index %d", element.toString(), i);
}
}
}
}