[英]HtmlUnit a href click not working
我有填寫證書的網絡表單。 然后,我想單擊登錄鏈接。 但是它仍然為我提供了與單擊相同的頁面。
HtmlForm loginForm = loginPage.getFormByName("Login1Form");
HtmlTextInput inLoginName = loginForm.getInputByName("loginId");
HtmlPasswordInput inPassword = loginForm.getInputByName("passwd");
HtmlTextInput inCaptcha = loginForm.getInputByName("checkcode");
inLoginName.setText(loginName);
inPassword.setText(password);
inCaptcha.setText(captcha.toUpperCase());
//HtmlElement loginLink =loginPage.getFirstByXPath("//a[@href=\"javascript:submitPB('9');\"]");
HtmlAnchor loginLink = loginPage.getAnchorByHref("javascript:submitPB('9');");
HtmlPage resultPage = resultPage = loginLink.click();
而且resultPage甚至具有與loginPage相同的對象ID。 我已經嘗試過webClient.wait方法以及在這里找到的所有方法。 但是沒有任何東西對我有用。
這是HTML鏈接,我需要點擊
<a href="javascript:submitPB('9');">
<img src="images/pf/login-001.gif" width="43" height="21" border="0" alt="">
</a>
有什么想法嗎? 謝謝
EDIT:// WebClient設置:
mWebClient = new WebClient(BrowserVersion.FIREFOX_3_6);
mWebClient.getOptions().setJavaScriptEnabled(true);
mWebClient.getOptions().setRedirectEnabled(true);
mWebClient.setAjaxController(new NicelyResynchronizingAjaxController());
mWebClient.getCookieManager().setCookiesEnabled(true);
似乎直接發送WebRequest是可行的。 因此,我首先加載要加載的驗證碼等登錄頁面,然后:
String formData = String.format(LOGIN=LOGIN&PB=9&isAA=&sso=&initP=gogo&loginId=%s&passwd=%s&checkcode=%s", loginName, password, captcha.toUpperCase());
WebRequest req = new WebRequest(new URL(url), HttpMethod.POST);
req.setRequestBody(formData);
resultPage = (HtmlPage) getWebClient().getPage(req);
並返回新頁面。 但是然后那個頁面說我不支持框架,但這是所有不同的問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.