Holen Sie sich das N-te element mit XPath - wenn element[N] fehl

Gab es schon einige Diskussion über das N-te element in XPath:

XPath-Abfrage zu erhalten N-te Instanz von einem element

Erhalten N-te Kind eines Knotens mit xpath

XPath und PHP: Parse aus der N-TEN Instanz eines Elements

Bin ich mit Selenium und PHPUnit für die funktionellen Tests. Mein problem ist, dass auf einer Seite mit einer großen form der N-TEN Selektor nicht funktioniert. Ich habe 80 input-Felder (mit Selen ist getXpathCount('//input') aufrufen, um die genaue Zahl) - und ich möchte zu Durchlaufen, die 80 Felder und geben Sie text.
Was hab ich schon versucht und funktioniert nicht (N ist der index-Variablen):

//input[N]
//input[position()=N]
input[N]
(//input)[N]
(.//input)[N]
css=input:nth-of-type(N)

Sowie alle Mischungen der vorgenannten. Es in der Regel feuert eine Ausnahme, nämlich: element wurde nicht gefunden bei N = 2. Ich habe versucht, mehrere XPath-tools für die Browser, so, wie native Erweiterungen wie XPathEvaluator in Chrom - fast alle Gaben mir die richtigen Ergebnisse. So scheint es Seleniums XPath-parser arbeitet ein bisschen anders.

Was denkst du? Vermisse ich eine wichtige Sache?

Update:
Hier sind Sie, meine Lösung:
getAllFields(): http://release.seleniumhq.org/selenium-remote-control/0.9.0/doc/java/com/thoughtworks/selenium/DefaultSelenium.html#getAllFields() und dann habe ich Durchlaufen.

Es tatsächlich löst nicht das ursprüngliche problem, also ich bin immer noch interessiert an der Antwort.

Dank!

  • Ich bin mir ziemlich sicher, dass Selen nicht vollständig, standard XPath. Aber ich kann nicht meine finger auf die Beweise jetzt, andere als das, was Sie gerade gebucht. Ihr Ausdruck (//input)[N] funktionieren sollte.
  • Es können Teile von XPath 1.0, mit der Selen-RC API nicht unterstützen, korrekt, aber ich bin mir nicht bekannt. Ich habe sicherlich verwendet die XPath-version, diese Art von Dingen viele Male, und Sie gut funktionieren.
  • gut zu wissen. Ich halte meine Augen offen für Ausnahmen in die Zukunft, da habe ich keine Besonderheiten zu bieten.
InformationsquelleAutor itarato | 2011-10-06
Schreibe einen Kommentar