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

2022-09-03 16:00:12

是否有可能教HTMLUnit忽略网页上的某些javascript脚本/文件?其中一些只是超出了我的控制范围(如jQuery),我无法用它们做任何事情。警告很烦人,例如:

[WARN] com.gargoylesoftware.htmlunit.javascript.host.html.HTMLDocument:
getElementById(script1299254732492) did a getElementByName for Internet Explorer

实际上我正在使用JSFUnit,HTMLUnit在它下面工作。


答案 1

如果你想避免由于任何JavaScript错误而导致的异常:

 webClient.setThrowExceptionOnScriptError(false);        

答案 2

好吧,我还没有找到一种方法,但我已经找到了一个有效的解决方法。尝试实现 。请看下面的示例代码。FalsifyingWebConnection

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请求工具栏时.js我的代码只会返回一个虚假的空响应。您可以将上面的包装器类插入到 HtmlUnit 中,如下所示。

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

推荐