Как получить выбранное значение из combobox с помощью Selenium WebDriver (Selenium 2)?

Предположим, у меня есть этот html код:

<select id="superior" size="1" name="superior">
    <option value=""></option>
    <option value="c.i.e.m.md.Division_1">DIVISION007</option>
    <option selected="selected" value="c.i.e.m.md.Division_$$_javassist_162_119">MyDivision</option>
    <option value="c.i.e.m.md.Division_121">MyDivision4</option>
    <option value="c.i.e.m.md.Division_122">MyDivision5</option>
</select>

Итак, это поле со списком с

id=superior 

и в настоящее время выбрано значение MyDivision.

используя Selenium WebDriver, я пытаюсь получить выбранное значение, но безуспешно.

пробовал:

String option = this.ebtamTester.firefox.findElement(By.id(superiorId)).getText();
return option;

но это возвращает мне все значения в combobox.

помогите пожалуйста?

Edit:

WebElement comboBox = ebtamTester.firefox.findElement(By.id("superior"));
SelectElement selectedValue = new SelectElement(comboBox);
String wantedText = selectedValue.getValue();

5 ответов


это написано на C#, но не должно быть трудно перейти на любой другой язык, который вы используете:

IWebElement comboBox = driver.FindElement(By.Id("superior"));
SelectElement selectedValue = new SelectElement(comboBox);
string wantedText = selectedValue.SelectedOption.Text;

SelectElement требует использования OpenQA.Селен.Поддержка.UI, поэтому вверху введите

using OpenQA.Selenium.Support.UI;

Edit:

Я полагаю, для вас, вместо "водитель" Вы должны использовать

IWebElement comboBox = this.ebtamTester.firefox.FindElement(By.Id("superior"));

в Java, следующий код прекрасно работает:

import org.openqa.selenium.support.ui.Select;
Select comboBox = new Select(driver.findElement(By.id("superior")));
String selectedComboValue = comboBox.getFirstSelectedOption().getText();
System.out.println("Selected combo value: " + selectedComboValue);

поскольку MyDivision выбран в настоящее время, приведенный выше код будет печатать "MyDivision"


selectedValue.Выбранного элемента параметр.Текст; получит вам текст выбранный пункт. Кто-нибудь знает, как получить выбранное значение.

для получения выбранного значения используйте

selectedValue.SelectedOption.GetAttribute("value");

чтобы выбрать опцию на основе метки:

Select select = new Select(driver.findElement(By.xpath("//path_to_drop_down")));
select.deselectAll();
select.selectByVisibleText("Value1");

чтобы получить первое выбранное значение:

WebElement option = select.getFirstSelectedOption()

использование XPath в c#

  string selectedValue=driver.FindElement(By.Id("superior")).FindElements(By.XPath("./option[@selected]"))[0].Text;