Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
HtmlUnit在window.open之后停止JavaScript执行_Java_Javascript_Htmlunit - Fatal编程技术网

HtmlUnit在window.open之后停止JavaScript执行

HtmlUnit在window.open之后停止JavaScript执行,java,javascript,htmlunit,Java,Javascript,Htmlunit,我最近将HTMLUnit 2.4更新为2.5(我们会选择最新版本,但由于不推荐使用的API,有很多代码需要重构)。我现在遇到了一些打开窗口的JavaScript问题 正在测试的页面是报告的“加载屏幕时请稍候”。页面打开一个新窗口,然后重定向回最初启动打印的页面 因此JavaScript看起来像: window.open(url,'report_window'); document.location.href = original_url; 使用HtmlUnit 2.4,脚本将继续执行,如果我

我最近将HTMLUnit 2.4更新为2.5(我们会选择最新版本,但由于不推荐使用的API,有很多代码需要重构)。我现在遇到了一些打开窗口的JavaScript问题

正在测试的页面是报告的“加载屏幕时请稍候”。页面打开一个新窗口,然后重定向回最初启动打印的页面

因此JavaScript看起来像:

window.open(url,'report_window');
document.location.href  = original_url;
使用HtmlUnit 2.4,脚本将继续执行,如果我抓取原始窗口对象,它将执行重定向。然而,升级到HtmlUnit 2.5后,原始窗口仍在“请等待”页面上-重定向从未执行。似乎JavaScript在调用window.open后停止执行

如果我手动测试,我已确认页面行为正确。我还在window.open调用之后尝试了不同的JavaScript,以确认该调用不是问题所在


有人知道这样的问题和任何潜在的解决办法吗?由于jQuery的兼容性,我们不得不继续使用HtmlUnit 2.5。

我能够通过从WebClient对象的web窗口侦听器中删除CurrentWindowTracker对象来解决这个问题。不幸的是,这个字段是完全封装的,所以我必须通过反射来检索它

        Field windowListeners = WebClient.class
                .getDeclaredField("webWindowListeners_");
        windowListeners.setAccessible(true);
        Collection webWindowListeners = (Collection) windowListeners
                .get(webClient);
        webWindowListeners.clear();