2016-07-18 5 views
0

Ich verstehe, wie Sie ein Element aus dem Dropdown-Menü mit der Methode selectByIndex auswählen. Howeverwhen Ich versuche selectByIndex (select.selectByIndex (index)) auf folgenden HTML Code auszuführen:Auswahl aus Drop-down nach Index in Selen und Java nicht möglich

<select id="destinationAllocationId" name="destinationAllocationId"> 
<optgroup label="Anywhere Virtual Cards"> 
<option value="1555555555f0a19">NNN0 [*-2453]</option> 
<option value="1555555555f0519">NNN1 [*-8354]</option> 
<option value="155555555550419">NNN2 [*-5765]</option> 
<option value="155555555520919">NNN3 [*-8875]</option> 
</optgroup> 
</select> 
</div> 

Ich bin nicht in der Lage die gewählte Option zu halten.

Zuerst scheint es zu funktionieren (das Dropdown-Menü öffnet sich und die richtige Option ist blau markiert). Sobald jedoch das Programm mit der Ausführung fortgesetzt wird (etwas, das nichts mit dem Dropdown-Menü zu tun hat), kehrt der Droiddown in den ursprünglichen Zustand (die Standardoption) zurück. Mit anderen Worten: Anfangs wählt das Programm die passende Option aus, aber es wird automatisch auf die Standardoption zurückgesetzt und ändert den Wert im Dropdown nicht, sobald das Dropdown-Menü verschwindet (normalerweise, wenn ich eine Option anwähle manuell kann ich sehen, dass diese Option ausgewählt wird, sobald das Dropdown geschlossen ist, aber in diesem Fall, solange das Dropdown geöffnet ist, ist die Option ausgewählt, aber sobald sie geschlossen wird, ist die Standardoption ausgewählt)

Alle Ideen, warum dies passiert

+0

Setzen Sie möglicherweise einen anderen Wert auf der Seite, die th zurückgesetzt wird ist Dropdown? z. B. füllen einige Dropdowns andere aus. Können Sie mehr Code zur Einstellung der Option posten? Scheint, als würde etwas Seltsames vor sich gehen. Ich benutze Java/Selenium und ich kann mich nicht erinnern, jemals ein Dropdown-Fenster geöffnet zu haben ... der Wert wird normalerweise nur eingestellt, ohne das Dropdown-Menü zu öffnen. – JeffC

Antwort

0

ich hatte dieses Problem auch

thi s ist, wie ich es gelöst

/** 
* helper method for handling drop downs 
* @param idPrefix the id of the drop down without any _xy 
* @param value the value to be selected 
*/ 
public void clickDropdown(String idPrefix, String value) { 
    // find & click on the label element of the drop down 
    firefoxDriver.findElement(By.id(idPrefix + "_label")).click(); 
    // find & choose element from drop down 
    firefoxDriver.findElement(By.xpath("//div[@id='" + idPrefix + "_panel']/div/ul/li[text()='" + value + "']")).click(); 
} 

u es so nennen:

// choosing an element in the drop down menu 
clickDropdown("projectForm:stellvertreter", "StringToSelect"); 

das i mit primefaces zur Verwendung schrieb, haben Sie es trotzdem ändern, aber u bekommen die Idee

für Das Problem mit dem Auswählen und Zurücksetzen ... versuchen Sie, eine Eingabetaste zu drücken, drücken Sie auf das ausgewählte Element oder klicken Sie es erneut ... hatte das nicht mit meinem Ansatz