gpt4 book ai didi

java - 无法使用 HtmlUnit 登录 Google - 无法前进到输入密码的网页

转载 作者:太空宇宙 更新时间:2023-11-04 13:34:22 26 4
gpt4 key购买 nike

最近有人使用 HtmlUnit 成功登录 Google 吗?我以前可以,但自从升级了我的 WebClient 使用的 BrowserVersion 后,我就被锁定了。非常感谢您能帮助我,因为我真的很困难!

我一直在使用 HtmlUnit-2.18 中的 BrowserVersion.CHROME。登录是一个涉及两个表单的两步过程。第一个表单只有电子邮件字段和“下一步”按钮。输入电子邮件地址并单击“下一步”后,将显示第二个表单。该表单具有密码字段和“登录”按钮以完成登录过程。

这是我正在使用的代码。 myGoogleSitesHomeWebpage 仍然是登录网页,而它应该是我的主页:

HtmlTextInput email = (HtmlTextInput) webpage.getElementById("Email");
email.setValueAttribute("MyEmailAddress");
HtmlSubmitInput nextButton = webpage.getElementById("next");
newWebpage = clickElement(nextButton);
webclient.waitForBackgroundJavaScriptStartingBefore(8000);
HtmlPasswordInput password = (HtmlPasswordInput) newWebpage.getElementById("Passwd-hidden");
password.setValueAttribute("MyPassword");
HtmlSubmitInput signInButton = newWebpage.getElementById("signIn");
myGoogleSitesHomeWebpage = clickElement(signInButton);
webclient.waitForBackgroundJavaScriptStartingBefore(8000);

clickElement(nextButton) 不会前进到带有“登录”按钮的第二个表单。它有我正在尝试登录的 Google 协作平台网页,并且我的电子邮件在第二种形式中正确设置,但仍然显示“下一步”链接。我还认为输入元素 id="Email"和 id="Passwd-hidden"是错误的,应该是 id="Email-hidden"和 id="Passwd"。看来我得到的第二种表格仍然是输入电子邮件地址的表格,而不是输入密码的表格。以下是第二种形式的相关部分:

<form novalidate="" method="post" action="https://accounts.google.com/ServiceLoginAuth" id="gaia_loginform">
<input name="continue" type="hidden" value="https://sites.google.com/site/MyGoogleSitesHomePageAddress"/>
<input id="Email" name="Email" placeholder="Enter your email" type="email" value="MyEmailAddress" spellcheck="false" autofocus=""/>
<input id="Passwd-hidden" type="password" spellcheck="false" class="hidden"/>
<input id="next" name="signIn" class="rc-button rc-button-submit" type="submit" value="Next"/>
<input id="signIn" name="signIn" class="rc-button rc-button-submit" type="submit" value="Sign in"/>
</form>

有人可以告诉我我做错了什么,并向我展示应该用来完成完整登录过程的代码吗?非常感谢,这对我有很大帮助!

最佳答案

它适用于我的 CHROME BrowserVersion。

下面是完整的案例,它也给出了“OK”

    try (final WebClient webClient = new WebClient(BrowserVersion.CHROME)) {
HtmlPage page = webClient.getPage("http://www.google.com");
HtmlAnchor a = page.getHtmlElementById("gb_70");
page = a.click();
HtmlForm form = (HtmlForm) page.getElementById("gaia_loginform");
HtmlTextInput email = (HtmlTextInput) page.getElementById("Email");
email.setValueAttribute(myEmailAddress);
HtmlSubmitInput nextButton = page.getHtmlElementById("next");
System.out.println(nextButton.asXml());
HtmlPage newWebpage = nextButton.click();
String status = newWebpage.getWebResponse().getStatusMessage();
System.out.println(status);
}

关于java - 无法使用 HtmlUnit 登录 Google - 无法前进到输入密码的网页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31851430/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com