Selenium java.lang.ArrayIndexOutOfBoundsException:显示2条错误消息
代码如下:Selenium java.lang.ArrayIndexOutOfBoundsException:显示2条错误消息,selenium,Selenium,代码如下: String txtDatePr = driver.findElement(By.id("--ID--")).getText(); int txtPrLength = txtDatePr.length(); System.out.println(txtPrLength); if (txtPrLength == '0'){ System.out.println("Sellable From date value is empty"
String txtDatePr = driver.findElement(By.id("--ID--")).getText();
int txtPrLength = txtDatePr.length();
System.out.println(txtPrLength);
if (txtPrLength == '0'){
System.out.println("Sellable From date value is empty");
}
else{
String[] arrsplitDatePr = txtDatePr.split("/");
int addYearPr = Integer.parseInt(arrsplitDatePr[2]);
addYearPr = addYearPr + 3;
String newYearPr = String.valueOf(addYearPr);
String changedDatePr = arrsplitDatePr[0]+'/'+arrsplitDatePr[1]+'/'+newYearPr;
driver.findElement(By.xpath("//span[@class='--Class---'][1]/input")).sendKeys(changedDatePr);
}
为了
它将sysout值显示为0,但之后会显示错误消息:
java.lang.ArrayIndexOutOfBoundsException: 2
txtPrLength是一个整数,将“0”替换为0
if (txtPrLength == 0){
System.out.println("Sellable From date value is empty");
}
第一件事:您似乎没有从预期的元素中获取文本,这就是为什么它显示结果0 要进行调试,可以尝试以下代码:
String txtDatePr = driver.findElement(By.id("--ID--")).getText();
int txtPrLength = txtDatePr.length();
System.out.println("String value ="+txtDatePr +"And Length ="+txtPrLength);
在这里,您将清楚地了解您正在获取的文本
第二件事:在if条件下,将'0'
替换为0
,因为您需要将文本长度与整数进行比较
if (txtPrLength == 0)
{
System.out.println("Sellable From date value is empty");
}
第三:您将获得java.lang.ArrayIndexOutofBounds异常:2
,因为每次您在使用index=2
的else条件下移动时:
int addYearPr = Integer.parseInt(arrsplitDatePr[2]);
因此,只需做一件事,如上所述在if条件中进行更正,并尝试在没有文本的情况下使其不会在else条件中移动。为什么要在整数值中应用“”,请将其删除
if (txtPrLength == 0)
{
//Code
}
这里唯一的错误消息是
java.lang.ArrayIndexOutOfBoundsException:2
。另一个是来自应用程序的显示。不清楚你在问什么。
if (txtPrLength == 0)
{
//Code
}