HtmlUnit Google 登录
HtmlUnit Google Login
我想自动执行 google 登录并接受 oauth 以获取验证码。
我通过 nextButton.click() 得到一个 NullPointerExeption,我找不到 "next" 按钮。
WebClient webClient = new WebClient(); //BrowserVersion.FIREFOX_38
HtmlPage page = webClient.getPage("https://accounts.google.com/o/oauth2/auth?");
HtmlTextInput email = (HtmlTextInput)page.getElementById("Email");
email.setValueAttribute(emailAddress);
HtmlSubmitInput nextButton = (HtmlSubmitInput)page.getElementById("next");
HtmlPage newPage = (HtmlPage)nextButton.click();
webClient.waitForBackgroundJavaScriptStartingBefore(8000);
HtmlTextInput passwd = (HtmlTextInput)page.getElementById("Passwd");
passwd.setValueAttribute(password);
HtmlSubmitInput signIn = (HtmlSubmitInput)page.getElementById("signIn");
HtmlPage pageSucces = (HtmlPage)signIn.click();
webClient.waitForBackgroundJavaScriptStartingBefore(8000);
HtmlSubmitInput submitAccess = (HtmlSubmitInput)page.getElementById("submit_approve_access");
HtmlPage pageAccess = (HtmlPage)submitAccess.click();
webClient.waitForBackgroundJavaScriptStartingBefore(8000);
HtmlTextInput code = (HtmlTextInput)page.getElementById("code");
System.out.println(code.getText());
我试过了Can't log in to Google using HtmlUnit - Can't advance to web page for entering password
没有成功。
问题出在网站上,html 页面不像标准浏览器。登录页面如下所示:https://lh6.ggpht.com/v19i1LtG-IdZKSZ-rhtuflJJmVmZM3gd3uauQQyLFvJxXTxYi4t8ygCQXwutu1nq69mmna8=w351
您还可以查看页面对象,在那里您可以看到包含所有可用 ID 的 idMap。
HtmlTextInput email = (HtmlTextInput)page.getElementById("Email");
email.setValueAttribute(emailAddress);
HtmlPasswordInput passwd = (HtmlPasswordInput)page.getElementById("Passwd");
passwd.setValueAttribute(password);
HtmlSubmitInput signInButton = (HtmlSubmitInput)page.getElementById("signIn");
webClient.waitForBackgroundJavaScriptStartingBefore(8000);
HtmlPage newPage = (HtmlPage)signInButton.click();
我想自动执行 google 登录并接受 oauth 以获取验证码。
我通过 nextButton.click() 得到一个 NullPointerExeption,我找不到 "next" 按钮。
WebClient webClient = new WebClient(); //BrowserVersion.FIREFOX_38
HtmlPage page = webClient.getPage("https://accounts.google.com/o/oauth2/auth?");
HtmlTextInput email = (HtmlTextInput)page.getElementById("Email");
email.setValueAttribute(emailAddress);
HtmlSubmitInput nextButton = (HtmlSubmitInput)page.getElementById("next");
HtmlPage newPage = (HtmlPage)nextButton.click();
webClient.waitForBackgroundJavaScriptStartingBefore(8000);
HtmlTextInput passwd = (HtmlTextInput)page.getElementById("Passwd");
passwd.setValueAttribute(password);
HtmlSubmitInput signIn = (HtmlSubmitInput)page.getElementById("signIn");
HtmlPage pageSucces = (HtmlPage)signIn.click();
webClient.waitForBackgroundJavaScriptStartingBefore(8000);
HtmlSubmitInput submitAccess = (HtmlSubmitInput)page.getElementById("submit_approve_access");
HtmlPage pageAccess = (HtmlPage)submitAccess.click();
webClient.waitForBackgroundJavaScriptStartingBefore(8000);
HtmlTextInput code = (HtmlTextInput)page.getElementById("code");
System.out.println(code.getText());
我试过了Can't log in to Google using HtmlUnit - Can't advance to web page for entering password 没有成功。
问题出在网站上,html 页面不像标准浏览器。登录页面如下所示:https://lh6.ggpht.com/v19i1LtG-IdZKSZ-rhtuflJJmVmZM3gd3uauQQyLFvJxXTxYi4t8ygCQXwutu1nq69mmna8=w351
您还可以查看页面对象,在那里您可以看到包含所有可用 ID 的 idMap。
HtmlTextInput email = (HtmlTextInput)page.getElementById("Email");
email.setValueAttribute(emailAddress);
HtmlPasswordInput passwd = (HtmlPasswordInput)page.getElementById("Passwd");
passwd.setValueAttribute(password);
HtmlSubmitInput signInButton = (HtmlSubmitInput)page.getElementById("signIn");
webClient.waitForBackgroundJavaScriptStartingBefore(8000);
HtmlPage newPage = (HtmlPage)signInButton.click();