我有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);
答案 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);
返回新页面。然而,那个页面说我不支持帧,但这是完全不同的问题。