2013-07-25 50 views
2

我用下面的下拉菜单中的工作:Selenium Webdriver Java:如何从值中的下拉菜单中获取可见文本?

<select id="id_time_zone" name="time_zone" onchange="validate_field($(this), [validate_required])"> 
    <option value="">Please Select</option> 
    <option value="1">UTC-12</option> 
    <option value="2">UTC-11</option> 
    <option value="3">UTC-10</option> 
    <option value="4">UTC-9</option> 
    </select> 

我所试图做的事: 我试图写一个程序,返回所选择的当前文本。例如,如果选择“UTC-12”,我的方法将返回String timezone =“UTC-12”。

我迄今为止尝试:

@FindBy(id = "id_time_zone") 
WebElement editSubOrg_timezone; 

// Reads and returns field 
public String readField() { 
tmp = editSubOrg_timezone.getText(); 
return tmp; 
} 

不行的,gettext的()返回所有值下拉

@FindBy(id = "id_time_zone") 
WebElement editSubOrg_timezone; 

// Reads and returns field 
public String readField() { 
tmp = editSubOrg_timezone.getAttribute("value") ; 
return tmp; 
} 

不行的,的getAttribute( “值”)返回的值(即1,2,3,4),而不是相应的显示文字

+1

的重复http://stackoverflow.com/questions/11934966/how-to-get -selected-option-using-selenium-web-driver-for-java – Amey

+0

我可以帮助你,如果你能给我的网页的网址 – cegprakash

回答

1

方法isSelected()返回true如果元素是选中。元素可以是下拉列表中的元素,也可以是复选框或单选按钮。

@FindBy(id = "id_time_zone") 
WebElement editSubOrg_timezone; 

// Reads and returns field 
public String readField() { 
    List<WebElement> options = editSubOrg_timezone.findElements(By.tagName("option")); 
    for (WebElement option : options) { 
     if (option.isSelected) { 
      return option.getText(); 
     } 
    } 
    return null; 
} 
0

我用下面的方法(在C#)获取所选项目的文本:

public string getSelectedLabel(ddlDropListID) 
{ 
    string selected; 
    SelectElement selectOption = new SelectElement(ddlDropListID); 
    selected = selectOption.SelectedOption.Text; 
    return selected; 
} 
相关问题