Mit XPath: Finden Sie Link in Zelle 3 Zeilen nach oben
Frage
Ich habe mehrere Zeilen in einer Tabelle, in einer davon ist ein Link Ich mag würde automatisch klicken. Für meinen Ausgangspunkt habe ich die letzte Instanz, dass eine Zeile den Text „Test-Frage?“:
ICH WÜRDE: 1416
Bearbeiten / Genehmigen Ignorieren Email Name: Submitter Name
Öffnen N / A Lage: Submitter Lage
Mitglied: Nein
Fragetext: Test-Frage? Antwort 1 Text:
Antwort 2 Text:
ICH WÜRDE: 1417
Bearbeiten / Genehmigen Ignorieren Email Name: Submitter Name
Öffnen N / A Lage: Submitter Lage
Mitglied: Nein
Fragetext: Test-Frage? Antwort 1 Text:
Antwort 2 Text:
So // tr [td = 'Test Question?'] [Last ()] so etwas wie "Fragetext?: Testfrage" sein würde
Wie auch immer, drei Reihen von oben, dass eine Reihe gibt es mit einer Reihe von Links in ihm. Ich würde die XPath auf den Link in der ersten Zelle mag.
Jetzt habe ich versucht, Position () zu verwenden, aber Sachen wie // tr [position () = (// tr [td = 'Test Question?'] [Last ()] [position ()]) - 3] nur ist nicht der richtige Weg, es zu tun, und ich kann keine guten Beispiele finden.
Thanx
Dave
Lösung
Das wird ein ziemlich knorriger XPath sein, gelinde gesagt, aber du bist im -Achsen mit ancestor::tr
beginnen und dann vorhergehenden Geschwister. Tunnel bis <tr>
, dann über drei (Sie werden position()
ref brauchen hier glaube ich) und dann nach unten in einer normalen Weise von dort zu Ihrem Ziel.
Edit:. Einfacher, als ich dachte, preceding-sibling zählt rückwärts
./ancestor::tr/preceding-sibling::tr[3]/td[1]/a