HtmlUnit - 从表单获取按钮

时间:2016-10-23 14:35:28

标签: facebook htmlunit

我正在尝试使用HtmlUnit库登录facebook:

String loginURL = "https://www.facebook.com/login.php?login_attempt=1"

final WebClient webClient = new WebClient();
HtmlPage page1 = webClient.getPage(loginURL);
final HtmlForm form = page1.getForms().get(0);
webClient.setJavaScriptTimeout(45000);

final HtmlTextInput textField = form.getInputByName("email");
textField.setValueAttribute(login);
final HtmlPasswordInput textField2 = form.getInputByName("pass");
textField2.setValueAttribute(password);
page1 = (HtmlPage) form.getInputByValue("Zaloguj się").click();

我检查了按钮值:

<input value="Zaloguj się" tabindex="4" type="submit" id="u_0_0">

运行此代码后发生以下错误:

Exception in thread "main" com.gargoylesoftware.htmlunit.ElementNotFoundException: elementName=[input] attributeName=[value] attributeValue=[Zaloguj się]

你能看到这里的任何错误吗? 感谢您的帮助:)

1 个答案:

答案 0 :(得分:1)

我尝试浏览提到的“https://www.facebook.com/login.php?login_attempt=1”网址,没有值为[Zalogujsię]的按钮。可能您的计算机使用的是另一种默认语言而不是英语。

我建议按ID获取登录按钮,然后点击()。

page1.getElementById( “loginbutton”)点击();

这是因为我看到登录按钮的ID为。

<button value="1" class="_42ft _4jy0 _52e0 _4jy6 _4jy1 selected _51sy" id="loginbutton" name="login" tabindex="1" type="submit">Log In</button>