簡體   English   中英

HtmlUnit a href點擊不起作用

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM