如何在Java中使用HtmlUnit从下拉框中选择一个元素?

时间:2011-02-01 17:20:15

标签: java htmlunit

我在Java中使用HtmlUnit导航到网页。从那个网页我需要登录然后从那里去。我知道如何输入用户名和密码,但是有一个下拉框,我需要选择其中一个选项。如何从HtmlUnit的下拉框中选择一个选项? 感谢

3 个答案:

答案 0 :(得分:33)

您可以使用<select>导航和操作页面HtmlSelect元素:

WebClient client = ...
Page page = client.getPage(url);
HtmlSelect select = (HtmlSelect) page.getElementById(mySelectId);
HtmlOption option = select.getOptionByValue(desiredOptionValue);
select.setSelectedAttribute(option, true);

JavaDoc表明有很多灵活的API方法可以做这样的事情。

答案 1 :(得分:3)

以下代码:

HtmlSelect select = page.getElementById(mySelectId);

应该是:

HtmlSelect select = (HtmlSelect)page.getElementById(mySelectId);

答案 2 :(得分:3)

添加以下行:

protected void selectOption(WebElement el, String option)
{
    Select select = new Select(el);
    select.selectByVisibleText(option);
}

protected WebElement elById(String id)
{
    return driver.findElement(By.id(id));
}

// "title" is your drop-down HTML id 
public void populateForm(String elValue)
{
    selectOption(elById("title"), elValue);
}