Selenium webdriver 如何使用SeleniumWebDriver(Selenium2)从组合框中获取所选值?
假设我有以下html代码:Selenium webdriver 如何使用SeleniumWebDriver(Selenium2)从组合框中获取所选值?,selenium-webdriver,Selenium Webdriver,假设我有以下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_$$
<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>
并且当前选择值MyDivision
使用SeleniumWebDriver,我试图获取所选的值,但没有成功
我试过:
String option = this.ebtamTester.firefox.findElement(By.id(superiorId)).getText();
return option;
但这会返回组合框中的所有值
请帮忙
编辑:
这是用C编写的,但将其转换到您正在使用的任何其他语言应该不难:
IWebElement comboBox = driver.FindElement(By.Id("superior"));
SelectElement selectedValue = new SelectElement(comboBox);
string wantedText = selectedValue.SelectedOption.Text;
SelectElement要求您使用OpenQA.Selenium.Support.UI,因此在顶部键入
using OpenQA.Selenium.Support.UI;
编辑:
我想对你来说,你会用“司机”而不是“司机”
IWebElement comboBox = this.ebtamTester.firefox.FindElement(By.Id("superior"));
要根据标签选择选项,请执行以下操作:
Select select = new Select(driver.findElement(By.xpath("//path_to_drop_down")));
select.deselectAll();
select.selectByVisibleText("Value1");
要获取第一个选定值,请执行以下操作:
WebElement option = select.getFirstSelectedOption()
在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,上述代码将使用c中的XPath打印MyDivision
string selectedValue=driver.FindElement(By.Id("superior")).FindElements(By.XPath("./option[@selected]"))[0].Text;
selectedValue.SelectedOption.Text;我会给你的文本的 所选项目。有人知道如何获取所选值吗 要获取选定的值,请使用
selectedValue.SelectedOption.GetAttribute("value");
我尝试了option.toString,得到了:[[[[[Firefox:Firefox on UNIX a88d1b9f-93d8-4140-9693-5a91d59b57f6]->id:superior]->标记名:option]结果我需要使用.getText。谢谢。我收到一个错误,说SelectElement consturctor受保护,所以我不允许创建它的实例。您是用C语言还是其他语言编写的?另外,你能用你正在测试的代码编辑你的主要帖子吗?嗨,谢谢你的帮助。我正在使用JAVA。我编辑了我的第一篇文章。新的SelectElement将无法工作,因为正如我所说的,构造函数似乎受到保护。它在我尝试时工作:selectedValue=newselectcombobox;但是,我不知道如何获取当前选定的文本?您好,我让它像这样工作:WebElement comboBox=ebtamTester.firefox.findElementBy.idsuperior;选择selectedValue=新建SelectcomboBox;String wantedText=selectedValue.getFirstSelectedOption.getText;ebtamTester.logger.logtext从+selectBoxName中选择的值,wantedText;谢谢..selectedValue.SelectedOption.Text;将为您获取所选项目的文本。有人知道如何获取所选值吗。我想测试值是否如我预期的那样,而不是文本,因为文本可能会改变。您使用的是什么语言?java?谢谢你的回答。你的回答对我帮助很大。
string selectedValue=driver.FindElement(By.Id("superior")).FindElements(By.XPath("./option[@selected]"))[0].Text;
selectedValue.SelectedOption.GetAttribute("value");