Frage

Ich schreibe den Selen-Test.

Ich habe ein Label gibt „Assign Designer“ und das Auswahlfeld folgte direkt nach dem Etikett. Unfortunetely, Auswahlbox hat die dynamische ID und ich kann es nicht von id abfragen oder andere es ist Attribut.

Kann ich baue die XPath-Abfrage, die "ersten select-Tag nach Text 'Assign Designer'"?

zurück

PS. Selen unterstützt nur XPath 1.0

War es hilfreich?

Lösung

Das wäre so etwas wie:

//label[text() = 'Assign Designer']/following-sibling::select[1]

Beachten Sie, dass:

  • Die // Kurzschrift ist ziemlich ineffizient, weil es ein Dokument weiten Scan verursacht. Wenn Sie spezifischere über die Lage des Etiketts sein kann, empfehle, ich so. Wenn das Dokument klein ist, wird dies jedoch kein Problem sein.
  • Da ich weiß nicht viel über Selen, benutzte ich „label“. Wenn es nicht ein <label> ist, sollten Sie die tatsächlichen Elementnamen verwenden, natürlich. ; -)
  • sicher sein, eine Position Prädikat ([1], in diesem Fall) zu schließen, wenn Sie eine Achse wie „following-sibling“ verwenden. Es wird leicht vergessen, und wenn es ist, kann Ihre Ausdrücke zu unerwarteten Ergebnissen führen.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top