HtmlUnit a href点击不起作用

时间:2014-02-07 13:07:49

标签: java onclick href htmlunit

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

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>

有什么想法吗?感谢

编辑:// WebClient设置:

mWebClient = new WebClient(BrowserVersion.FIREFOX_3_6);
mWebClient.getOptions().setJavaScriptEnabled(true);
mWebClient.getOptions().setRedirectEnabled(true);
mWebClient.setAjaxController(new NicelyResynchronizingAjaxController());
mWebClient.getCookieManager().setCookiesEnabled(true);

1 个答案:

答案 0 :(得分:1)

似乎直接发送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);

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