我正在尝试使用HtmlUnit自动登录到一个网站,即nike.com。我面临的问题是登录名不是由单独的页面处理的,而是一旦用户单击站点上的登录按钮,它就会出现在同一站点上。查找该按钮可以正常工作,但是在单击“登录”按钮后,我似乎无法获得加载了登录表单的网站的更新版本。以下代码永远无法找到登录表单。我试图同时使用AjaxController和等待javascript,但都无济于事。
任何帮助将不胜感激。
public void nikeLogin() {
try (final WebClient webClient = new WebClient(BrowserVersion.CHROME)) {
webClient.getOptions().setThrowExceptionOnScriptError(false);
webClient.setAjaxController(new NicelyResynchronizingAjaxController());
HtmlPage page = webClient.getPage("https://nike.com/de/launch");
HtmlElement button = page.getFirstByXPath("/html/body/div[2]/div/div/div[1]/div/header/div[1]/section/ul/li[1]/button");
HtmlPage page2 = button.click();
webClient.waitForBackgroundJavaScript(1000);
List textFields = page2.getForms();
if(textFields.isEmpty()) {
System.out.println("No Forms found");
} else {
System.out.println("Login form found");
}
} catch (Exception e) {
e.printStackTrace();
}
}