2017-12-19 1 views
0

Iterate Dieser Code druckt immer aus irgendeinem Grund den Titel des ersten Elements in Liste, obwohl ich eine erweiterte For-Schleife verwendet, um alle Elemente in der Liste durchlaufen.Java: Kann nicht durch WebElement Liste in Selen

List<WebElement> elementList = getAllElements(driver); 

    String title = ""; 
    String[] XPath = {"//*[contains(@id,'itemName')]"}; 


    for (WebElement singleElement : elementList) { 

     try { 
      title = singleElement.findElement(By.xpath(XPath[0])).getText(); 
      System.out.println("Title: " + title); 

     } catch (Exception e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 

    } 

Es gibt 169 Elemente in der Liste mit verschiedenen Titeln, sondern 169 verschiedene Titel zu drucken, druckt er den ersten Titel 169 mal.

Was mache ich falsch?

Antwort

0

Egal Jungs, ich habe die Antwort gefunden und es hat mit absoluten vs relativen XPath-Suche zu tun.

Zur Behebung dieses Problems alles, was Sie tun müssen, ist Veränderung:

String[] XPath = {"//*[contains(@id,'itemName')]"}; 

zu:

String[] XPath = {".//*[contains(@id,'itemName')]"}; 

Die zusätzlichen Punktkräfte es anstelle von absoluten XPath relativen XPath zu verwenden.

Ich hoffe, das hilft anderen.

Verwandte Themen