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
 }