Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.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
Java 如何忽略与jQuery相关的HTMLUnit警告/错误?_Java_Htmlunit - Fatal编程技术网

Java 如何忽略与jQuery相关的HTMLUnit警告/错误?

Java 如何忽略与jQuery相关的HTMLUnit警告/错误?,java,htmlunit,Java,Htmlunit,可以教HTMLUnit忽略网页上的某些javascript脚本/文件吗?其中一些是我无法控制的(比如jQuery),我对它们无能为力。警告很烦人,例如: [WARN] com.gargoylesoftware.htmlunit.javascript.host.html.HTMLDocument: getElementById(script1299254732492) did a getElementByName for Internet Explorer 实际上,我使用的是JSFUnit和HT

可以教HTMLUnit忽略网页上的某些javascript脚本/文件吗?其中一些是我无法控制的(比如jQuery),我对它们无能为力。警告很烦人,例如:

[WARN] com.gargoylesoftware.htmlunit.javascript.host.html.HTMLDocument:
getElementById(script1299254732492) did a getElementByName for Internet Explorer
实际上,我使用的是JSFUnit和HTMLUnit,它在JSFUnit下工作。

看一看。它将使您有机会在执行给定脚本之前修改(或者在您的情况下停止)该脚本


另外,如果只是警告让你紧张的话,我建议你。

我还没有找到解决方法,但我已经找到了一个有效的解决办法。尝试实现
伪造网络连接
。请看下面的示例代码

public class PinConnectionWrapper extends FalsifyingWebConnection {

    public PinConnectionWrapper(WebClient webClient)
            throws IllegalArgumentException {
        super(webClient);
    }

    @Override
    public WebResponse getResponse(WebRequest request) throws IOException {
        WebResponse res = super.getResponse(request);
        if(res.getWebRequest().getUrl().toString().endsWith("/toolbar.js")) {
            return createWebResponse(res.getWebRequest(), "",
"application/javascript", 200, "Ok");
        }
        return res;
    }

}
在上面的代码中,每当HtmlUnit请求toolbar.js时,我的代码只会返回一个假空响应。您可以将上述包装器类插入HtmlUnit,如下所示

final WebClient webClient = new WebClient(BrowserVersion.FIREFOX_3_6);
new PinConnectionWrapper(webClient);

如果您想忽略所有警告日志条目,可以将日志级别设置为log4j.properties文件中com.gargoylesoftware.htmlunit.javascript.host.html.HTMLDocument的INFO。

如果您想避免因任何javascript错误而出现异常:

 webClient.setThrowExceptionOnScriptError(false);        
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); getLogger(“org.apache.commons.httpclient”).setLevel(Level.OFF)


插入此代码。

HTMLUnit邮件列表是一个询问的好地方。开发人员也参与其中,他们通常非常有帮助。对于2.13及以上版本:
webClient.getOptions().setThroweExceptionOnScriptorror(false)