关于基于硒中的for循环中的匹配条件执行一些动作
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于基于硒中的for循环中的匹配条件执行一些动作相关的知识,希望对你有一定的参考价值。
我想匹配RFQ否传入字符串中的一些数据与表格中的一些数据相匹配,当这与特定行匹配时我想点击该匹配行中的按钮但是在其他列中
但是代码给出了错误
代码:
String baseUrl = "https://test.transporteg.com/";
driver.get(baseUrl);
driver.findElement(By.xpath("//*[@id="j_idt12:email"]")).sendKeys("kevin@openspaceservices.com");
driver.findElement(By.xpath("//*[@id="j_idt12:password"]")).sendKeys("Eg123");
driver.findElement(By.xpath("//*[@id="j_idt12:j_idt19"]")).click();
driver.findElement(By.linkText("Dashboard Provider")).click();
driver.findElement(By.xpath("//*[@id="rfqViewId:j_idt248_data"]/tr/td[5]/div[1]/input")).click();
WebElement Webtable = driver.findElement(By.xpath("//*[@id="table-1"]/tbody/tr[1]/td[1]"));
List<WebElement> allElements = Webtable.findElements(By.xpath("//*[@id="table-1"]/tbody/tr/td[1]"));
System.out.println("Reached Here 1");
System.out.println("No. of Rows in the WebTable: " + allElements.size());
String[] RFQ_NO = {"6291/91/06/18"};
System.out.println("Reached Here 8");
System.out.println("All emelements count "+allElements.size());
for (WebElement we : allElements) {
for (int i = 0; i <= allElements.size(); i++)
{
System.out.println("For loop Count"+i);
if (we.getText().equals(RFQ_NO[i])) {
System.out.println("Matched at Row"+(i));
driver.findElement(By.xpath("//*[@id="table-1"]/tbody/tr[" + (i + 1) + "]/td[7]/a/img"))
.click();
// *[@id="table-1"]/tbody/tr[2]/td[7]/a/img
} else {
System.out.println("Not Matched");
}
}
}
}
}
错误:
线程“main”中的异常java.lang.ArrayIndexOutOfBoundsException:1在ListPackage.List_Class.main(List_Class.java:86)
你能帮忙吗?
答案
错误“java.lang.ArrayIndexOutOfBoundsException:1”表示您正在尝试访问不存在的数组索引。
查看由于for循环条件行而发生错误的代码:
for (int i = 0; i <= allElements.size(); i++)
正确替换上述for循环条件应为:
for (int i = 0; i < allElements.size(); i++)
即用i <= allElements.size()
替换i < allElements.size()
有关更多信息,请参阅链接:ArrayIndexOutOfBoundsException
以上是关于关于基于硒中的for循环中的匹配条件执行一些动作的主要内容,如果未能解决你的问题,请参考以下文章