如何在Java中使用HtmlUnit?

我正在尝试使用Java中的HtmlUnit登录网站。首先,我输入用户名,然后输入密码。之后,我需要从下拉框中选择一个选项。输入用户名和密码似乎有效,但是当我尝试从下拉框中选择项目时出现错误。谁能帮我解决这个问题?我的代码如下:

import com.gargoylesoftware.htmlunit.WebClient;

import com.gargoylesoftware.htmlunit.html.HtmlElement;

import com.gargoylesoftware.htmlunit.html.HtmlOption;

import com.gargoylesoftware.htmlunit.html.HtmlPage;

import com.gargoylesoftware.htmlunit.html.HtmlSelect;

public class homePage {

public static void main(String[] args) throws Exception {

final WebClient webClient = new WebClient();

final HtmlPage page = webClient.getPage("website name here");

HtmlElement usrname = page.getElementByName("username");

usrname.click();

usrname.type("myusername");

HtmlElement psswrd = page.getElementByName("password");

psswrd.click();

psswrd.type("mypassword");

HtmlSelect select = (HtmlSelect) page.getElementById("cmbProducts");

HtmlOption option = select.getOptionByValue("ITDirect");

select.setSelectedAttribute(option, true);

HtmlElement signin = page.getElementByName("SignIn");

signin.click();

System.out.println(page.getTitleText());

webClient.closeAllWindows();

}

}

回答:

这是HTMLunit的单元测试中的代码。

final HtmlSelect select = form.getSelectsByName("select1").get(0);

final List<HtmlOption> expected = new ArrayList<HtmlOption>();

expected.add(select.getOptionByValue("option1"));

expected.add(select.getOptionByValue("option3"));

请注意,他们使用的是getSelectsByName而不是getElementById。

这是这些单元测试的链接,因此您可以查看它们如何使用API​​进行规定。http://htmlunit.sourceforge.net/xref-

test/com/gargoylesoftware/htmlunit/html/HtmlSelectTest.html

以上是 如何在Java中使用HtmlUnit? 的全部内容, 来源链接: utcz.com/qa/403511.html

回到顶部