Frage

Ich versuche, die ID eines Elements zu erfassen, die zufällig generiert werden. Ich kann erfolgreich den Wert meiner Element-ID wie folgt erfassen ...

| storeAttribute | //div[1]@id | variableName |

Nun meine Variable wird so etwas wie ...

divElement-12345

Ich möchte entfernen ‚divElement-‘, so dass die Variable, mit denen ich links ist ‚12345‘, so dass ich es später verwenden können, die ‚Form-12345‘ Element mit ihm ... so etwas wie dies im Zusammenhang wählen:

| type | //tr[@id='form-${variableName}']/td/form/fieldset/p[1]/input | Type this |

Wie kann ich in der Lage sein, dies zu tun?

War es hilfreich?

Lösung

Sie haben zwei Möglichkeiten in Selenium, XPath und CSS-Selektor. Ich habe gelesen, dass CSS-Selektor ist besser für Tests in Firefox und IE zu tun. Mit der neuesten Version von Selenium IDE (2009.03.05) Ich habe Erfolg gehabt mit storeEval verwendet, der Javascript Ausdrücke auswertet, geben Sie JavaScript-String-Funktionen zugreifen zu können.

XPath:

storeAttribute | //div[1]@id                                            | divID
storeEval      | '${divID}'.replace("divElement-", "")                  | number
type           | //tr[@id='form-${number}']/td/form/fieldset/p[1]/input | Type this

CSS-Selektor:

storeAttribute | css=div[1]@id                                                     | divID
storeEval      | '${divID}'.replace("divElement-", "")                             | number
type           | css=tr[id='form-${number}'] > td > form > fieldset > p[1] > input | Type this

Andere Tipps

Es gibt viele Funktionen in XPath, die Ihr Problem lösen sollen. Unter der Annahme, „divElement-“ ist eine Konstante, die sich nicht ändern und dass Sie verwenden XPath 2.0, würde ich vorschlagen:

substring-after (div [1] / @ id / text () "DivElement -")

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top