web-dev-qa-db-ja.com

JavaでHtmlUnitを使用して、ドロップダウンボックスから要素を選択するにはどうすればよいですか?

JavaでHtmlUnitを使用してWebページに移動しています。そのWebページからログインして、そこから移動する必要があります。ユーザー名とパスワードを入力する方法は知っていますが、オプションの1つを選択する必要があるドロップダウンボックスがあります。HtmlUnitのドロップダウンボックスからオプションを選択するにはどうすればよいですか?ありがとうございます

23
Peter

HtmlSelectを使用して、ページ<select>要素をナビゲートおよび操作できます。

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

JavaDoc は、このようなことを行うための柔軟なAPIメソッドがたくさんあることを示しています。

34
skaffman

次の行を追加します。

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);
}
3

次のコード:

HtmlSelect select = page.getElementById(mySelectId);

する必要があります:

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