Java selenium xpath - immer alle Elemente unter einem bestimmten element

dies ist eine vereinfachte HTML-Struktur Suche ich durch:

<div class="main">
...other stuff...
       <td class="child">44</td>
       <td class="child">59</td>
       <td class="child">11</td>
</div>
<div class="main">
...other stuff...
       <td class="child">5</td>
       <td class="child">14</td>
       <td class="child">98</td>
</div>
...this kind of structure repeats with similar numbers a few more times but with identical class names

Muss ich extrahieren Sie alle zahlen, die unter der ersten gefunden main-Klasse also habe ich eine Abfrage, um die Suche für die ersten Haupt-und alle td mit der Klasse unter ihm. Kann jemand mir einen Tipp geben was ich falsch mache, da diese Abfrage gibt mir alle zahlen von allen td ' s der Klasse "Kind" in allen "Haupt" - div ' s:

List<WebElement> koefi = driver.findElements(By.xpath("//div[@class='main'][1]//td[@class='child']"));

Was mache ich falsch, oder ist meine Logik richtig, aber ich bin fehlen einige andere Teile von html, die ich noch nicht eingefügt, da hier die Struktur ist zu umständlich..?

Danke!!!!

p.s.:
Ich versuchte dies auch, aber wieder, ich bekomme Inhalten aller td ' s mit "Kind" - Klasse, und nicht nur die erste "Haupt"..

List<WebElement> koefi = driver.findElements(By.xpath("//*[1][@class='main']//td[@class='child']"));

UPDATE:
Ich konnte mein problem lösen, indem Sie zuerst die erste vorkommen von "main" div die per default in der .findElement Funktion:

WebElement element = driver.findElement(By.xpath("//*[1][@id='main']"));

Und dann extrahieren .findElements Funktion der "Kind" - Klassen:

List<WebElement> kk = element.findElements(By.className("child"));

Ich bin noch nicht in der Lage, herauszufinden, warum nicht das .findElements mit meinem xpath funktioniert, oder es funktioniert zu gut, es extrahiert alle "Haupt" - Klasse und nicht nur die erste. Und der original HTML-Code ist zu groß, um es hier einfügen, so dass ich nicht wollen, Sie zu stören Leute!!

Machen Sie keinen Fehler? können Sie bitte versuchen : java.util.Liste<WebElement> koefi = Treiber.findElements(Durch.xpath("//div[@class='main'][1]//td[@class='child']"));
Sind Sie sicher, dass alle <div class="main"> Geschwister sind?
Bekomme ich eine Liste aller "Kind" - Elemente, und mein Ziel ist es, die "Kind" - Elemente nur unter die erste "Haupt".. ich java importiert.util.Liste an der Spitze meiner Datei..
es ist eine zugrunde liegende Struktur über den "main" container aber, ja, Sie sind alle in der gleichen Ebene, zum Beispiel div1>div2>div3 ">Haupt -, und dann wieder div1>div2>div3 " >main und so weiter..
Die xpath-in der ursprünglichen Frage //div[@class='main'][1]//td[@class='child'] enthält einen relativen Pfad, das gilt für alle Ihre wichtigsten Klassen.

InformationsquelleAutor Hrvoje85 | 2014-12-23

Schreibe einen Kommentar