[英]How to use HtmlUnit in Java?
我正在尝试使用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
获取登录用户名和密码的形式。
这是一个例子:
HtmlPage page3;
page3 = webClient.getPage("Website");
HtmlForm loginForm = page3.getFormByName("loginForm");
HtmlTextInput username = loginForm.getInputByName("NameofUsernameElement");
HtmlPasswordInput pass = loginForm.getInputByName("NameofPassowordElement");
HtmlSubmitInput b = loginForm.getInputByValue("LoginButtonValue");
username.setValueAttribute("Actualy Username");
pass.setValueAttribute("Actual Password");
HtmlPage page2;
page2 = b.click();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.