2009-09-25 8 views
8

Ich versuche, einen Wert in einem Auswahlelement auszuwählen. Ich verwende Selenium RC (Java), um die Testfälle auszuführen. Ich verstehe, dass der Code einen Wert für die Auswahl ist gegeben durch:Verwenden von Selenium zum Auswählen einer Option bei einer Auswahl mit optgroup

selenium.select("locator", "value=REQUIRED VALUE") 

Ich bin nicht in der Lage den gewünschten Wert mit dem obigen Code zu wählen. Ich denke, es könnte etwas mit optgroup im ausgewählten Quellcode zu tun haben. Ich bekomme keine Ausnahmen, der Befehl wird ordnungsgemäß ausgeführt, aber wenn Sie auf die Seite schauen, wird der erforderliche Wert nicht ausgewählt. Ich kann auch IDs (anstelle von Wert) verwenden, weil es keine gibt. Hier ist der Quellcode des Selektors:

<select> 
    <optgroup label="Group1"> 
     <option value="13">some value1</option> 
     <option value="25">some value2</option> 
    </optgroup> 
    <optgroup label="Group2"> 
     <option value="18">REQUIRED VALUE</option> 
     <option value="34">some value3</option> 
     ... 
     ... 
    </optgroup> 
</select> 

Gibt es eine Möglichkeit, den gewünschten Wert mit Selenium auszuwählen?

Es wäre großartig, wenn wir die Optionswerte (wie "18", "34" usw.) vermeiden könnten, da sich diese Zahlen später ändern, wenn sich die Werte ändern. Beispiel: "REQUIRED VALUE" hat einen Wert von -18, aber wenn ich diesen Eintrag löschen und erneut hinzufügen würde, wäre der Wert anders. Grundsätzlich ist diese Drop-Down-Box dynamisch.

Antwort

13

Der Wert für die erforderliche Option in Ihrem Beispiel ist tatsächlich '18'. Versuchen Sie folgendes:

selenium.select("locator", "label=REQUIRED VALUE") 
+0

Hallo Dave, Danke für die Antwort. Aber denkst du, dass es einen anderen Weg gibt, als 18 zu benutzen? Der Inhalt des Dropdown-Menüs ändert sich in meiner Anwendung und die Nummern ändern sich. Mit anderen Worten, im Moment zeigt es sich als, aber es kann eine beliebige Zahl sein. Selbst wenn ich meine Tests mehrmals durchführe, ändern sich diese Zahlen. Haben Sie andere Ideen, was getan werden kann? In der Zwischenzeit werde ich diesen Kommentar auch auf meine Frage aktualisieren. Danke, Mugen – Mugen

+1

Überprüfen Sie meine Antwort erneut. Ich schlage vor, 'value =' in 'label =' zu ändern. Auf diese Weise können Sie eine Option basierend auf ihrer Bezeichnung anstelle ihres Werts auswählen. –

+1

Danke für die Antwort. Es funktioniert perfekt mit Label! – Mugen

Verwandte Themen