htmlunit a href单击不起作用



我的WebForm我正在用凭据填充。然后,我想单击登录链接。但这仍然给了我与我单击的同一页面。

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();

和结果页面甚至具有与登录页相同的对象ID。我已经尝试了WebClient。等待方法,以及我在这里找到的所有方法。但是没有什么对我有用的。

这是HTML链接,我需要单击

<a href="javascript:submitPB('9');">
    <img src="images/pf/login-001.gif" width="43" height="21" border="0" alt="">
</a>

有什么想法吗?谢谢

编辑://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);

返回新页面。但是那个页面说我不支持帧,但这都是不同的问题。

最新更新