Я пытаюсь создать программу, которая входит в учетную запись Yahoo. Я использую HtmlUnit в Java, но когда программа пытается нажать Войти выдает большое количество различных исключений.
Форма кнопки такая:
<form method="post" action="https://login.yahoo.com/config/login?" autocomplete="" name="login_form" onsubmit="return hash2(this)">
<input type="hidden" name=".tries" value="1"/>
<input type="hidden" name=".src" value=""/>
<input type="hidden" name=".md5" value=""/>
<input type="hidden" name=".hash" value=""/>
<input type="hidden" name=".js" value=""/>
<input type="hidden" name=".last" value=""/>
<input type="hidden" name="promo" value=""/>
<input type="hidden" name=".intl" value="us"/>
<input type="hidden" name=".bypass" value=""/>
<input type="hidden" name=".partner" value=""/>
<input type="hidden" name=".u" value="eqn7kn96q7irv"/>
<input type="hidden" name=".v" value="0"/>
<input type="hidden" name=".challenge" value="rTRqt.vaVyBEJgxmMpkh0sqYx5Mz"/>
<input type="hidden" name=".yplus" value=""/>
<input type="hidden" name=".emailCode" value=""/>
<input type="hidden" name="pkg" value=""/>
<input type="hidden" name="stepid" value=""/>
<input type="hidden" name=".ev" value=""/>
<input type="hidden" name="hasMsgr" value="0"/>
<input type="hidden" name=".chkP" value="Y"/>
<input type="hidden" name=".done" value="http://my.yahoo.com"/>
<input type="hidden" name=".pd" value="_ver=0&c=&ivt=&sg="/>
<input type="hidden" name="pad" id="pad" value="3"/>
<input type="hidden" name="aad" id="aad" value="3"/>
<div id="inputs">
<div id="fun"/>
<div id="persistency">
<div id="submit">
<button type="submit" id=".save" name=".save" class="primaryCta" tabindex="5"> Sign In </button>
</div>
</form>
и мой java-код:
import com.gargoylesoftware.htmlunit.WebClient;
import com.gargoylesoftware.htmlunit.html.HtmlForm;
import com.gargoylesoftware.htmlunit.html.HtmlPage;
import com.gargoylesoftware.htmlunit.BrowserVersion;
import com.gargoylesoftware.htmlunit.Page;
import com.gargoylesoftware.htmlunit.RefreshHandler;
import com.gargoylesoftware.htmlunit.html.HtmlButton;
import java.io.IOException;
import java.net.URL;
public class VirtualWebBrowser {
public static void clickAuthorizeButton(String url, String login, String password) throws Exception {
WebClient webClient = new WebClient(BrowserVersion.FIREFOXHtmlPage nextPage = (HtmlPage) signInButton.click();
6);
webClient.setThrowExceptionOnScriptError(false);
webClient.setRefreshHandler(new RefreshHandler() {
public void handleRefresh(Page page, URL url, int arg) throws IOException {
System.out.println("handleRefresh");
}
});
HtmlPage loginPage = (HtmlPage) webClient.getPage(url);
HtmlForm liginForm = loginPage.getFormByName("login_form");
liginForm.getInputByName("login").setValueAttribute(login);
liginForm.getInputByName("passwd").setValueAttribute(password);
HtmlButton signInButton = liginForm.getButtonByName(".save");
HtmlPage nextPage = (HtmlPage) signInButton.click();
webClient.closeAllWindows();
}
}
Все исключения находятся в строке HtmlPage nextPage = (HtmlPage) signInButton.click();
После этой строки программа регистрируется в учетной записи Yahoo, но все эти исключения так или иначе влияют на всю работу программы, что она работает нестабильно. Что мне делать, чтобы избежать этой ситуации или хотя бы поймать все исключения?