잠시 동안이 포럼을 읽지 만 방금 등록했습니다.이 글은 내 첫 번째 게시물이므로 여기에서 훌륭한 일을 할 수 있습니다.HtmlUnit 로그인 팝업 문제
저는 HtmlUnit을 사용하여 구독자 인 잡지 중 하나에 연결하고 로그인하여 저에게 관심있는 기사를 검색 할 목적으로 Java로 프로그램을 작성하고 있습니다. 일단 그것이 작동하게되면 나에게 이메일을 보내지 만 그건 내 질문과 관련이 없다.
는나는 로그인이 동작하지 않습니다 : 내가 로그인 버튼을 찾아, 그것은
- 당신이 로그인을 클릭하면 사용자 이름/암호 및 로그인 버튼을 마지막으로
- 클릭
는 팝업이납니다. 하지만 팝업을 캡처 할 수없는 것 같습니다. 나는 양식을 얻고 필드를 공급, 로그인 페이지를 얻을
public void authenticate() throws MalformedURLException, IOException
{
LogFactory.getFactory().setAttribute("org.apache.commons.logging.Log", "org.apache.commons.logging.impl.NoOpLog");
java.util.logging.Logger.getLogger("com.gargoylesoftware.htmlunit").setLevel(Level.OFF);
java.util.logging.Logger.getLogger("org.apache.commons.httpclient").setLevel(Level.OFF);
WebClient webClient = new WebClient(BrowserVersion.INTERNET_EXPLORER_9);
webClient.getOptions().setJavaScriptEnabled(true);
webClient.getCookieManager().setCookiesEnabled(true);
webClient.getOptions().setThrowExceptionOnScriptError(false);
webClient.getOptions().setPopupBlockerEnabled(false);
webClient.addWebWindowListener(new WebWindowListener()
{
public void webWindowOpened(WebWindowEvent event)
{
System.out.println("a NEW window opened: " + event.getNewPage());
windows.add(event.getWebWindow());
}
@Override
public void webWindowClosed(WebWindowEvent event) {
System.out.println("a window is CLOSED: " + event.getOldPage());
// TODO Auto-generated method stub
}
@Override
public void webWindowContentChanged(WebWindowEvent event) {}
});
// Get the first page
HtmlPage page1 = webClient.getPage("**");
HtmlDivision div = (HtmlDivision) page1.getElementById("topContainer");
HtmlAnchor anchor = (HtmlAnchor) div.getElementById("loginBtn1");
HtmlPage logPage = (HtmlPage) anchor.click();
System.out.println("logPage is: "+logPage);
if (windows.size() > 0)
{
System.out.println("YIOUHOUU");
HtmlPage popupPage = getPopupPage();
System.out.println(popupPage.getTitleText());
}
HtmlForm form = logPage.getFormByName("loginForm");
System.out.println("Form: "+ form);
HtmlTextInput username = form.getInputByName("username");
HtmlPasswordInput password = form.getInputByName("password");
HtmlCheckBoxInput rememberPassword = form.getInputByName("remember");
HtmlCheckBoxInput acceptTerms = logPage.getElementByName("acceptTerms");
HtmlAnchor button = form.getElementById("loginButton");
username.setValueAttribute("USER");
password.setValueAttribute("RANDOM_PASS");
rememberPassword.setChecked(true);
acceptTerms.setChecked(true);
System.out.println(form.toString());
HtmlPage page2 = button.click();
System.out.println(page2.asText());
webClient.closeAllWindows();
}
:
이
내 코드입니다. 모두 완료되었지만 두 번째 페이지에서 로그인을 클릭하면 아무 일도 일어나지 않습니다.필드를 제출하고 SUbmit을 클릭하더라도 아무 일도 일어나지 않습니다. 나는 html 페이지의 근원을보고있다 그러나 왜, ajax 또는 sth 그 밖의 배경에서 인 파악할 수 없는가? 어떤 도움
@blondeamon을 할 수 이 대답을 수락하십시오? –