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

使用Selenium webdriver Java时无法获取下拉选项?

姜玉泽
2023-03-14
<select name="routeSelector" onkeypress="selectorKeyPress(this, event);
    return false;" onfocus="clearKeyBuffer(this)" 
    onchange="selected(this);routeSelected()">
<option value="701">701</option>
<option value="702">702</option>
<option value="703">703</option>
<option value="104">104</option>
... etc
</select>
<select name="routeSelector" onkeypress="selectorKeyPress(this, event);return false;" onfocus="clearKeyBuffer(this)" onchange="selected(this);routeSelected()">
                          <option selected="selected">
                            _________________________
                          </option>
                        </select>

我的代码如下所示:

public class Foo {
public static void main(String[] args) {

    HtmlUnitDriver driver = new HtmlUnitDriver();   
    try {
        driver.get("http://***.html");
    } catch (Exception e) {
        System.out.println(e.toString());
    }
    driver.setJavascriptEnabled(true);
    Select select = new Select(driver.findElement(By.name("routeSelector")));
    List<WebElement> options = select.getOptions(); // return only 1 blank element as above
    System.out.print(driver.getPageSource()); 
    driver.quit();
}

我也尝试过在选择器上执行点击操作,或者刷新页面,但这些操作都不起作用。我猜这个网页上有一些Javascript?

提前道谢!

--Java version 7 Selenium version 2

共有1个答案

桂梓
2023-03-14

在阅读了那个页面的源代码之后,我已经解决了这个问题。

于是我从页面中找到了一段JavaScript代码:

parent.addOption(routeSelector, "701", "701", false, false);

parent.addOption(routeSelector, "702", "702", false, false);

parent.addOption(routeSelector, "703", "703", false, false);

parent.addOption(routeSelector, "104", "104", false, true);

并且在加载页面时执行这段代码。如果要在selenium中执行,则必须手动执行这些代码。手动完成之后,select.getOptions()方法可以返回选项。

 类似资料:
  • 你好,我正在使用selenium,并且已经成功地设置了id历史的文本字段,但是无法从

  • 嗨,我一直在做量角器测试,我的测试有问题。我的ionic应用程序确实有一个具有模型名称的下拉列表,我试图使用模型名称访问它,它可以工作,但问题是它无法选择我需要从该下拉列表选项中选择的确切选项。它只选择第一个?我这样写了量角器语法。 但是这段代码选择的不是值59,而是值0,这是默认选项。有人能帮我吗?

  • 问题内容: 如何使用JavaScript从下拉列表中获取选定的值? 我尝试了下面的方法,但是它们都返回选择的索引而不是值: 问题答案: 如果您有一个如下所示的select元素: 运行此代码: 将成为。如果您真正想要的是,请执行以下操作: 这将成为

  • 问题内容: 我将selenium1的代码转换为selenium2,找不到在下拉菜单中选择标签或获得下拉菜单的选定值的简便方法。您知道在Selenium 2中如何做吗? 这是两个在Selenium 1中起作用但不在2中起作用的语句: 问题答案: 查看硒文档中有关使用webdriver 填写表单的部分以及Select类的javadoc 。 要基于标签选择一个选项: 要获得第一个选定的值:

  • 问题内容: 通常,我使用它来返回所选选项的值,但这一次它不起作用。所选标签的ID HTML代码 问题答案: 对于下拉选项,您可能想要这样的东西: 之所以不能解决问题,是因为单击选项不会更改下拉菜单的值,它只是将属性添加到作为下拉菜单的 子 项的所选选项中。

  • 我真的很难从一个网站上的下拉菜单中选择一个项目。HTML的代码如下所示: 我已经尝试了我能想到的一切,并在StackOverflow上找到了!我注意到这似乎可以用来选择实际的下拉框: 但我认为这是可行的,因为代码运行时不会出现任何错误。但是,我仍然无法从下拉菜单中选择任何内容。我试过: 通过xpath/name/id/tag/value/text查找元素 选择\u mp。按值选择值('2') 选择