0
votes

Comment réparer "java.lang.indexoutofboundSException: Index: 1, Taille: 1" Problème

J'essaie d'itérer les éléments, où je dois obtenir un corps de texte pour chaque élément, mais après l'imprimé du 1er élément d'élément, suivant pour le corps d'élément suivant, je reçois "java.lang.indexoutofboundSException: index: 1, taille : 1". Je sais que c'est une solution très simple, mais je suis incapable de le réparer. Aidez-moi s'il vous plaît à résoudre ce problème.

dans mon code ci-dessous, quand "String Text = kpitext.get (i) .getText ();" Impressions pour la deuxième fois que je reçois "java.lang.indexoutofboundsException: index: 1, taille: 1" erreur. xxx

attendu est-il impossible d'imprimer le corps pour tous les éléments pour l'itération.


4 commentaires

avant de faire kpitext.get (i), vous devez vérifier qu'il y a un élément pour cet index i


Tout code change?


Il suffit d'ajouter un si avant cette ligne


Vous utilisez le même index pour la collection d'utilisateurs et la collection KPITEXT. Évidemment, ces collections ont une taille différente


3 Réponses :


2
votes

Le problème est très simple. Vous utilisez la valeur "I" pour accéder au tableau "KPITEXT". Dans ce cas, votre tableau n'a qu'un seul élément. L'indice 1 est donc hors limites, comme indique la trace de la pile d'exception.

Si vous souhaitez les imprimer tout ce que vous devez faire cela: P>

for (WebElement element : KpiText)
   System.out.println(element.getText());


0 commentaires

0
votes

Il semble que les noms d'utilisateur.Size () est supérieur à la taille de KPITEXT. Lorsque vous référencez la liste KPITEXT, assurez-vous que l'index est en réalité. Alors peut-être un chèque comme xxx


0 commentaires

0
votes

Si vous êtes itération sur Liste KPITEXT CODE> C'est une meilleure idée de le faire comme ceci:

   List<WebElement> KpiText = KPIValues.findElements(By.xpath("//*[@id='main-content-app']/div/div[2]/div/div/div[2]/div[2]/div[1]/div/div[1]"));

   for(int i=0; i < KpiText.size() - 1; i++){

    WebElement namesOfUsers = userNames.get(i);
    System.out.println(namesOfUsers);
    namesOfUsers.click();

    System.out.println();
    String text = KpiText.get(i).getText();
    System.out.println(text);
}


0 commentaires