2016-07-18 45 views
0

我明白如何使用selectByIndex方法從下拉列表中選擇一個元素。 Howeverwhen我嘗試以下HTML片段進行selectByIndex(select.selectByIndex (index)):無法從Selenium和Java中的索引中選擇下拉列表

<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> 

我無法保持所選的選項。

起初它似乎工作(下拉菜單打開,正確的選項突出顯示在藍色)。然而,只要程序繼續執行(與下拉列表無關),dro pdown就會恢復到原始狀態(默認選項)。

換句話說,程序最初選擇恰當的選項就好,但它會自動恢復爲默認選項,並且一旦下拉菜單消失就不會實際更改下拉列表中的值(通常當我選擇一個選項手動我可以看到該選項被選中一旦下拉關閉,但在這種情況下,只要下拉打開該選項被選中,但只要它關閉,選擇默認選項)

任何想法,爲什麼發生這種情況

+0

您是否可能設置一些其他值重新設置頁是下拉菜單嗎?例如,某些下拉式填充/重置其他。你可以在設置選項時發佈更多的代碼。似乎有些奇怪的事情正在發生。我使用Java/Selenium,我不記得有沒有看到一個下拉菜單打開...該值通常只是設置而不打開下拉菜單。 – JeffC

回答

0

我也有這個問題

thi s是我如何解決它

/** 
* 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(); 
} 

ü稱呼它:

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

這一點,我寫了與primefaces使用,你無論如何都要修改,但你得到的想法

爲選擇和還原的問題...嘗試發送回車鍵按下所選項目或再次點擊它......沒有與我的方法

相關問題