2017-09-23 2 views
-1

-Code ist wie folgt:java.lang.ArrayIndexOutOfBoundsException: 2-Fehlermeldung angezeigt wird

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

Für

System.out.println(txtPrLength); 

Its me die SYSOUT-Wert als 0 zeigt, aber nach, dass seine einen Fehler geben Nachricht:

java.lang.ArrayIndexOutOfBoundsException: 2 
+0

Die einzige Fehlermeldung hier ist 'java.lang.ArrayIndexOutOfBoundsException: 2'. Die andere ist eine Anzeige von der Anwendung. Unklar, was du verlangst. – EJP

Antwort

1

txtPrLength eine ganze Zahl ersetzen '0' und mit 0

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

Erste Sache: Es scheint, dass Sie nicht den Text von Ihrem erwarteten Elemente erhalten, die, warum es ist Ergebnis zeigt 0

Sie für das Debuggen unter Code versuchen:

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

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

Hier finden Sie Holen Sie sich die klare Idee, welchen Text Sie bekommen.

zweite Sache: ersetzen '0' mit 0 in Ihrer, wenn die Bedingung, wie Sie Textlänge mit ganzzahligen

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

müssen vergleichen Drittens: Sie erhalten java.lang.ArrayIndexOutOfBoundsException: 2, weil jedes Mal, wenn Sie in anderem Zustand bewegt werden, wo Sie verwenden index = 2 hier:

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

so tut nur eine Sache, eine Korrektur in Ihrer wenn die Bedingung wie oben erwähnt, und versucht, damit es nicht in anderem Zustand bewegen, wenn es kein Text.

0

Warum Sie "" in einem Integer-Wert anwenden, entfernen Sie es

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