当前位置: 首页 > 知识库问答 >
问题:

如何使用Selenium WebDriver(Selenium 2)从组合框中获取选定的值?

拓拔霄
2023-03-14

假设我有以下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;

但这会返回组合框中的所有值。

请帮忙?

编辑:

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

共有3个答案

乌杰
2023-03-14

selectedValue。选择选项。文本将为您获取所选项目的文本。是否有人知道如何获取所选值。

要获取选定的值,请使用

selectedValue.SelectedOption.GetAttribute("value");
唐啸
2023-03-14

在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”

柳星晖
2023-03-14

这是用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;

编辑:

我想对你来说,你会用

IWebElement comboBox = this.ebtamTester.firefox.FindElement(By.Id("superior"));
 类似资料:
  • 问题内容: 我使用Tkinter在python中制作了一个简单的组合框,我想检索用户选择的值。搜索后,我认为可以通过绑定选择事件并调用将使用box.get()之类的函数来实现此目的,但这不起作用。程序启动时,将自动调用该方法,并且不打印当前选择。当我从组合框中选择任何项目时,不会调用任何方法。这是我的代码片段: 当我从框中选择一个项目时,应该调用此方法: 谁能告诉我如何获得选定的值? 编辑:我通过

  • 我有一个网页渲染使用extjs。它用一些生成的ID呈现多个组合框。和每个组合框都选择了不同的选项。我怎样才能找出在每个组合中选择了哪个值? 在调试HTML DOM时,我观察到ExtJS呈现DIV是不同的,可选择的选项在最后呈现在不同的DIV中。因此,我无法定义任何XPath来找出所选值。

  • 我的表单上有2个组合框(在表单加载事件中)。第一个组合框在表单加载后从选择语句中获取一个值。我想在我的第二个组合框中使用该值。这是我的代码: 1st组合框= cbDelivery 2de组合框= cbOrderNo 此组合框位于: private void CB delivery _ selectedindex changed(对象发送方,事件参数e) 因此,一旦我从1ste组合框中选择一个值,我

  • 我正在尝试使用两个ttk组合框从sqlite数据库中获取数据。我设法使用combo_division()函数在一个名为的组合框中列出项目。现在我试图对第二个名为产品菜单的组合框做类似的事情,但是列表需要根据组合框中的第一个选定项目缩小范围。 为了让SQL查询传递第二个组合框所需的信息,我想到了这样的东西: 到目前为止两个组合框的代码:

  • 问题陈述:我试图在网页上获取span标记的值。*该网页上有多个span标记,其中我需要4个。

  • 问题内容: 我有一个文本框和一个链接按钮。当我写一些文本时,然后选择其中一些,然后单击链接按钮,必须在文本框中显示一个带有消息框的文本。 我该怎么做? 当我单击下面的文本框的“提交”按钮时,消息框必须显示Lorem ipsum。因为在该区域中选择了“ Lorem ipsum”。 如果我从页面中选择任何文本并单击“提交”按钮,则该文本有效,但如果我将文本写入文本框并使其成功,则无效。因为当我单击到另