Hy ...我想使用HtmlUnit登录某些第三方网站。但是HtmlUnit应该能够告诉我对输入站点的登录尝试是否成功。有没有办法使用HtmlUnit执行此任务。请帮忙.. !!!
由于 Usman Raza
答案 0 :(得分:5)
我目前正在使用HTMLunit登录具有变体页面和重定向的网站。我的一些代码是:
//---------------------------------Login Page---------------------------------
HtmlPage PageLogin = webClient.getPage(url);
HtmlElement submitButton = (HtmlElement) PageLogin.getByXPath(Xpath To Button).get(0);
HtmlTextInput name = (HtmlTextInput) PageLogin.getElementById("UserIdInput");
HtmlPasswordInput pass = (HtmlPasswordInput)PageLogin.getElementById("ADloginPasswordInput");
name.setText(username);
pass.setText(password);
System.out.println("Logging in to site");
//------------------------------------------------------------------------
//---------------------------------Pass varified Page----------------------
HtmlPage pagePassVarified = submitButton.click();
System.out.println("Successfully Logged in to site");
HtmlElement btnContinue = (HtmlElement) pagePassVarified.getElementById("BtnClickToContinue");
//---------------------------------------------------------
//---------------------Home Page----------------------------------
HtmlPage pageHome = btnContinue.click();
System.out.println("Home Page accessed");
//----------------------------------------------------------------
此代码转到登录页面,在文本框中添加用户名和密码,然后单击提交按钮。我们接下来被重定向到“等待5秒,或点击此处继续主页”类型的页面,其中单击继续按钮。最后,我们到达了我们想要登录的主页。当没有ID可用时,我通过ID和Xpath选择了页面元素。
答案 1 :(得分:1)
您可以让HtmlUnit检查网址,或者搜索网页上的特定元素,更确切地说是在一个案例中仅存在(成功登录/拒绝)。
答案 2 :(得分:0)
像RabidFX建议的那样,我建议你查一下网址,但在某些情况下(我在工作经历中看到过这种情况)网址可能仍然相同。然后,我的建议是检查特定元素,它应该是登录表单,因为通常不成功的登录尝试会将您重定向到具有相同登录表单的同一页面。这不是硬编码的解决方案,因为我希望你找到一些方法来通过通用的方式获取登录表单:)