Как получить выбранное значение из 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;