如何从选定的下拉值中获取文本

时间:2017-11-06 11:39:42

标签: c# selenium

我在下拉菜单中有以下HTML:

<select class="" data-id-title="" default-selected="0" 
  data-bind="value: selectedTitle, options: titles, optionsText: 'Text', optionsValue:'ValueId',
  optionsCaption: 'Title', $el: $elTitle, hasFocus: titleHasFocus, attr: {'default-selected': defaultTitle}">
    <option value="">Title</option>
    <option value="1">Mr</option>
    <option value="2">Mrs</option>
    <option value="4">Miss</option>
    <option value="3">Ms</option>
</select>

我想获取下拉列表中所选值的文本。例如,如果我从标题中选择“太太”,我想抓住“太太”这个文字。

目前我抓住价值,所以我抓住'2'作为输出,而不是'太太'。我如何抓取文字?

以下是当前获取所选下拉值的代码:

public List<string> GetPassengerNames()
{
    List<string> titleList = new List<string>();

    var passengerTitles =  _driver.FindElements(PassengerDetailsElements.TitleField);

    foreach (var passengerTitle in passengerTitles)
    {
        titleList.Add(passengerTitle.GetAttribute("value"));
    }
    return titleList;
}

PassengerDetailsElements.TitleField就是这样:

public static By TitleField => By.XPath("//*[@data-id-title='']");

由于

3 个答案:

答案 0 :(得分:1)

您可以这样使用,首先使用SelectElement找到下拉列表

SelectElement drpDown= new SelectElement(driver.FindElement(By.Xpath("//*[@data-id-title='']")));
drpDown.SelectByText("Mr");

for text

selectedValue.SelectedOption.GetAttribute("value");

您可以使用selenium dropdown selection

的官方文档

答案 1 :(得分:0)

  1. 选择您想要的此选项

    SelectElement selectElement = new SelectElement(element); selectElement.SelectByText(文本);

  2. 之后,获取文字

    new SelectElement(_casualtySearchPageElements.CasualtyWeather).SelectedOption.Text;

答案 2 :(得分:0)

您可以将 selectedIndex 属性用于选择节点,以便找到所选的选项。然后,您可以找到相应的文本。

my_select = driver.find_element_by_tag_name("select")
my_select.find_elements_by_tag_name("option")[int(my_select.get_attribute("selectedIndex"))].text