2017-09-23 124 views
-1

碼是這樣的:java.lang.ArrayIndexOutOfBoundsException:2顯示錯誤消息

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); 

及其我展示系統輸出值爲0,但在這之後其給出一個錯誤消息:

java.lang.ArrayIndexOutOfBoundsException: 2 
+0

的唯一錯誤消息這裏是'java.lang.ArrayIndexOutOfBoundsException:2'。另一個是來自應用程序的顯示。不清楚你在問什麼。 – EJP

回答

1

txtPrLength是整數取代 '0' 與0

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

第一件事:看來你不從,這就是爲什麼它顯示結果0

爲了調試,你可以試試下面的代碼你的預期元素獲取文本:

String txtDatePr = driver.findElement(By.id("--ID--")).getText(); 
int txtPrLength = txtDatePr.length(); 

System.out.println("String value ="+txtDatePr +"And Length ="+txtPrLength); 

在這裏你會清楚地瞭解你所得到的文字。

第二件事:在你的,如果條件更換'0'0,因爲你需要比較整數文本長度

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

第三:你是因爲每次你在其他條件下移動時,你正在使用越來越java.lang.ArrayIndexOutOfBoundsException: 2index = 2就在這裏:

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

所以只是做一兩件事,改正你的,如果條件如上所述,並且嘗試,所以它不會在其他條件移動,如果有沒有文字。

0

爲什麼要在一個Integer值應用 「」,刪除它

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