Wie kann ich mit Selenium eine bestimtes Webelement von einer Lösung von Webelementen ansprechen?

2 Antworten

Hallo,

gibt es denn kapselnde Element die sich unterscheiden? Hast du Zugriff auf den Code der Seite? Du könntest IDs an jedem Element vergeben. Falls es eine feste Reihenfolge der Elemente gibt, kannst mittels Reihenfolge darauf zugreifen. Vielleicht kannst du mehr Html posten, dann kann man besser sehen, um was es geht.


Ueberzwerch  17.09.2019, 12:25

Mittels Reihenfolge: z. B. //input[@type='checkbox'][1], ist aber eher schlecht

0
Masteruser653 
Fragesteller
 17.09.2019, 12:48

Da kriege ich leider erneut mehrere Webelemente angeboten

0
Masteruser653 
Fragesteller
 17.09.2019, 12:59

Hier mal ein bisschen Code:

<div class="form-group "><input id="mmcr:accountEdit:j_id_21_2_2_3_1_1_2_8_2_1_4_3_2_6_0_2:input" type="checkbox" name="mmcr:accountEdit:j_id_21_2_2_3_1_1_2_8_2_1_4_3_2_6_0_2:input" value="true" class="checkbox" /><label class="label-position " for="mmcr:accountEdit:j_id_21_2_2_3_1_1_2_8_2_1_4_3_2_6_0_2:input">Per E-Mail</label> </div> <div class="form-group "><input id="mmcr:accountEdit:j_id_21_2_2_3_1_1_2_8_2_1_4_3_2_6_1_2:input" type="checkbox" name="mmcr:accountEdit:j_id_21_2_2_3_1_1_2_8_2_1_4_3_2_6_1_2:input" value="true" class="checkbox" /><label class="label-position " for="mmcr:accountEdit:j_id_21_2_2_3_1_1_2_8_2_1_4_3_2_6_1_2:input">Schriftlich</label> </div> <div class="form-group "><input id="mmcr:accountEdit:j_id_21_2_2_3_1_1_2_8_2_1_4_3_2_6_2_2:input" type="checkbox" name="mmcr:accountEdit:j_id_21_2_2_3_1_1_2_8_2_1_4_3_2_6_2_2:input" value="true" class="checkbox" /><label class="label-position " for="mmcr:accountEdit:j_id_21_2_2_3_1_1_2_8_2_1_4_3_2_6_2_2:input">Telefonisch</label> </div>

0
Masteruser653 
Fragesteller
 17.09.2019, 13:00

Das Problem ist die IDs sind dynamisch. Und ich möchte deswegen versuchen die Webelemente unabhängig von den IDs anzusprechen.

0

Ja klar, man könnte die input Elemente über das Label ansteuern, z. B. in etwa so

.//input[@type='checkbox' and ./parent::label[contains(string, "Telefonisch")]]] Die Syntax stimmt hier wahrscheinlich nicht 100%, aber vom Prinzip her funktioniert es so.

Bearbeitet: Ups, sollte eigentlich als Kommentar zum vorigen Post angezeigt werden, bin wohl im falschen Eingabefeld gelandet.


Masteruser653 
Fragesteller
 17.09.2019, 15:54

Danke das hat mir sehr geholfen. Ich arbeite mich gerade erst in die Testautomatisierung ein und kenne mich mit den ganzen Möglichkeiten bei der Ansteuerung nicht wirklich gut aus. Vielen Dank

1