Как использовать HtmlUnit в Java, чтобы выбрать элемент из выпадающего списка? - PullRequest
23 голосов
/ 01 февраля 2011

Я использую HtmlUnit в Java для перехода на веб-страницу.С этой веб-страницы мне нужно войти, а затем перейти оттуда.Я знаю, как ввести имя пользователя и пароль, но есть выпадающий список, в котором мне нужно выбрать один из вариантов.Как выбрать опцию из выпадающего списка в HtmlUnit?Спасибо

Ответы [ 3 ]

33 голосов
/ 01 февраля 2011

Вы можете перемещаться по элементам страницы <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 для таких вещей.

3 голосов
/ 08 июня 2011

Добавьте следующие строки:

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 голосов
/ 21 февраля 2011

Следующий код:

HtmlSelect select = page.getElementById(mySelectId);

должен быть:

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