无法处理浏览器 window (htmlunit)
Can't handle browser window (htmlunit)
我想从站点下载 config.bin 文件。使用 htmlunit
final WebClient webClient = new WebClient(BrowserVersion.CHROME);
webClient.getOptions().setTimeout(2000);
webClient.getOptions().setThrowExceptionOnScriptError(false);
webClient.getOptions().setThrowExceptionOnFailingStatusCode(false);
webClient.setConfirmHandler(new ConfirmHandler() {
public boolean handleConfirm(Page page, String message) {
System.out.println(" -----------------------");
System.out.println("handle config");
System.out.println(" -----------------------");
return true;
}
});
final HtmlPage page = webClient.getPage("http://site");
final DomElement backup = mainFrame.getElementByName("Backup");
webClient.addWebWindowListener(new WebWindowListener()
{
public void webWindowClosed(WebWindowEvent event)
{
System.out.println("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1");
};
public void webWindowContentChanged(WebWindowEvent
event)
{
System.out.println("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!2");
}
public void webWindowOpened(WebWindowEvent event)
{
System.out.println("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!3");
}
});
InputStream input = backup.click().getWebResponse().getContentAsStream();
然后提交 ckick()
我认为获取流,但是提交页面。我认为我的浏览器 window 有问题,我无法处理浏览器 window。我在处理程序中插入 sout
并查看何时调用此方法但它没有调用
问题出在我安装的那段时间。已更改 setTimeout
并且所有工作正常。
webClient.getOptions().setTimeout(15000);
我想从站点下载 config.bin 文件。使用 htmlunit
final WebClient webClient = new WebClient(BrowserVersion.CHROME);
webClient.getOptions().setTimeout(2000);
webClient.getOptions().setThrowExceptionOnScriptError(false);
webClient.getOptions().setThrowExceptionOnFailingStatusCode(false);
webClient.setConfirmHandler(new ConfirmHandler() {
public boolean handleConfirm(Page page, String message) {
System.out.println(" -----------------------");
System.out.println("handle config");
System.out.println(" -----------------------");
return true;
}
});
final HtmlPage page = webClient.getPage("http://site");
final DomElement backup = mainFrame.getElementByName("Backup");
webClient.addWebWindowListener(new WebWindowListener()
{
public void webWindowClosed(WebWindowEvent event)
{
System.out.println("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1");
};
public void webWindowContentChanged(WebWindowEvent
event)
{
System.out.println("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!2");
}
public void webWindowOpened(WebWindowEvent event)
{
System.out.println("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!3");
}
});
InputStream input = backup.click().getWebResponse().getContentAsStream();
然后提交 ckick()
我认为获取流,但是提交页面。我认为我的浏览器 window 有问题,我无法处理浏览器 window。我在处理程序中插入 sout
并查看何时调用此方法但它没有调用
问题出在我安装的那段时间。已更改 setTimeout
并且所有工作正常。
webClient.getOptions().setTimeout(15000);