2014-04-16 62 views
1

如何讓Selenium從下拉列表中選擇一個選項值?從下拉式硒中選擇

的HTML低於:

<select name="cboProxyMember" id="idProxyMember" onchange="selectMember(); return false"> 
<option value="29"> 
Text - Fullers Inns 
<option value="8840"> 
Text - Turks Head 

我選擇的元素,沒有問題,使用:

var selectproxy = Driver.Instance.FindElement(By.Id("idProxyMember")); 
selectproxy.Click(); 

但我怎麼選擇的選項?

我試過按名稱和標記名查找元素,但都沒有工作。

回答

1

這是Python中的一個例子,因爲我不熟悉C#綁定,我的歉意。

from selenium.webdriver.support.select import Select 

selectproxy = Select(driver.find_element_by_id("idProxyMember")) 
selectproxy.select_by_visible_text("Text - Fullers Inns") 
selectproxy.select_by_value("29") 
+0

+1,這個想法在C#中是一樣的 - 它在'OpenQA.Selenium.Support'命名空間中被稱爲'SelectElement'。 – Arran

0
Correct you cant select by this because in your HTML, 

它顯示「的onchange =」 selectMember();」,意味着選擇從下拉整個頁面的任何 項目已被更改 這就是爲什麼你必須之前使用切換到該幀。 選擇從下拉菜單的任何值

driver.switchTo()幀(name_or_id);

現在選擇從下拉列表中值

0

樣報表打開瀏覽器,負載路徑,選擇值從下拉

static WebDriver driver; 
System.setProperty("webdriver.ie.driver","C:\\(Path)\\IEDriverServer.exe"); 
driver = new InternetExplorerDriver(); 
driver.manage().window().maximize(); 

driver.get("EnterURLHere");   
driver.manage().timeouts().implicitlyWait(30,TimeUnit.SECONDS); 

Select value1 = new Select(driver.findElement(By.id("idProxyMember")));  
value1.selectByVisibleText("29"); //Select Character from dropdown list 
1
Select select = new Select(driver.findElement(By.id("idProxyMember"))); 
select.deselectAll(); 
select.selectByVisibleText("Fullers Inns"); 
select.selectByValue("29"); 
1

對不起張貼這麼晚了,下面的代碼示例將解決這個問題,從下拉列表中選擇。

var selectproxy = Driver.Instance.FindElement(By.Id("idProxyMember")); 
selectproxy.Click(); 
var SelectOption = new OpenQA.Selenium.Support.UI.SelectElement(selectproxy); 
selectElement.SelectByText(<Define your option name which you want to 
select>); 

For example: selectElement.SelectByText("Turks Head");