java.lang.ArrayIndexOutOfBoundsException:显示2错误消息

时间:2017-09-23 05:00:31

标签: 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");
      }
      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); 
      }

对于

System.out.println(txtPrLength);

它显示我的sysout值为0,但在此之后它给出了一条错误消息:

java.lang.ArrayIndexOutOfBoundsException: 2

3 个答案:

答案 0 :(得分:1)

txtPrLength是一个整数,用0

代替'0'
if (txtPrLength == 0){
          System.out.println("Sellable From date value is empty");
      }

答案 1 :(得分:0)

第一件事:您似乎没有从预期元素中获取文本显示结果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.ArrayIndexOutOfBoundsException: 2,因为每次你正在使用index = 2的其他情况都在这里:

int addYearPr = Integer.parseInt(arrsplitDatePr[2]);

所以只做一件事,如上所述在if条件下进行修正,并尝试如果没有文字则不会移动其他条件。

答案 2 :(得分:0)

为什么要在整数值中应用“”,将其删除

 if (txtPrLength == 0)
 {
  //Code
 }