Sto usando HtmlUnit in Java per navigare in una pagina web. Da quella pagina ho bisogno di accedere e poi andare da lì. So come digitare il nome utente e la password, ma poi c'è una casella a discesa in cui ho bisogno di selezionare una delle opzioni. Come faccio a selezionare un'opzione da una casella a discesa in HtmlUnit? GrazieCome utilizzare HtmlUnit in Java per selezionare un elemento da una casella a discesa?
20
A
risposta
29
È possibile navigare e manipolare pagina <select>
elementi utilizzando HtmlSelect
:
WebClient client = ...
Page page = client.getPage(url);
HtmlSelect select = (HtmlSelect) page.getElementById(mySelectId);
HtmlOption option = select.getOptionByValue(desiredOptionValue);
select.setSelectedAttribute(option, true);
Il JavaDoc dimostra che ci sono un sacco di metodi API flessibili per fare le cose come questa.
1
seguente codice:
HtmlSelect select = page.getElementById(mySelectId);
dovrebbe essere:
HtmlSelect select = (HtmlSelect)page.getElementById(mySelectId);
1
Aggiungere le righe follwoing:
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);
}