有没有办法在Java驱动程序中使用PhantomJS的onResourceRequested回调?

时间:2015-01-26 16:53:54

标签: java selenium-webdriver phantomjs

我想避免在PhantomJS中加载css文件。我正在使用Java驱动程序。 我在这里看到了PhantomJS的一个很好的示例js代码:

page.onResourceRequested = function(requestData, request) {
    if ((/http:\/\/.+?\.css/gi).test(requestData['url']) || requestData['Content-Type'] == 'text/css') {
        request.abort();
    }
};

我的代码正在使用像这样的PhantomJSDriver(scala):

val sb = new PhantomJSDriverService.Builder()
val svc = sb.usingPhantomJSExecutable(new java.io.File("./phantomjs")).usingCommandLineArguments(Array("--load-images=false","--disk-cache=true")).build()

有没有办法可以通过Java API实现相同的功能?

1 个答案:

答案 0 :(得分:11)

我能够使用onResourceRequested方法注册页面的PhantomJSDriver#executePhantomJS回调。

以下是禁用Google Analytic请求的示例:

PhantomJSDriver driver = new PhantomJSDriver(service, capabilities);
driver.executePhantomJS("this.onResourceRequested = function(request, net) {" +
        "   console.log('REQUEST ' + request.url);" +
        "   if (request.url.indexOf('google-analytics') !== -1) {" +
        "       console.log('Abort ' + request.url);" +
        "       net.abort();" +
        "   }" +
        "};");