Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Selenium webdriver 如何使用SeleniumWebDriver(Selenium2)从组合框中获取所选值?_Selenium Webdriver - Fatal编程技术网

Selenium webdriver 如何使用SeleniumWebDriver(Selenium2)从组合框中获取所选值?

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_$$

假设我有以下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>
并且当前选择值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");