Java PhantomJS NETWORK_ERR XMLHttpRequest异常101

时间:2015-05-27 20:33:59

标签: java selenium

我正在尝试使用Selenium在Java中使用PhantomJS获取页面https://secure.twitch.tv/login,但在driver.get(...)上,我总是遇到此错误。我试过实现这个:

String [] phantomJsArgs = {"--web-security=no", "--ignore-ssl-errors=yes"};
desireCaps.setCapability(PhantomJSDriverService.PHANTOMJS_GHOSTDRIVER_CLI_ARGS, phantomJsArgs);

但这似乎没有什么区别。有没有人知道解决方法?

以下是一些代码:

private void setup(){
        DesiredCapabilities desireCaps = new DesiredCapabilities();
        desireCaps.setCapability(PhantomJSDriverService.PHANTOMJS_EXECUTABLE_PATH_PROPERTY, "C:\\Users\\Scott\\workspace\\Twitch Bot v2\\libs\\phantomjs.exe");
        desireCaps.setCapability("takesScreenshot", true);
        String [] phantomJsArgs = {"--disable-web-security"};
        desireCaps.setCapability(PhantomJSDriverService.PHANTOMJS_GHOSTDRIVER_CLI_ARGS, phantomJsArgs);
        driver = new PhantomJSDriver(desireCaps); 
        //driver = new HtmlUnitDriver();
    }

当我尝试抓住抽搐页面时,控制台正在打印出来。

This is what the console prints out when I try to get the twitch link.

2 个答案:

答案 0 :(得分:0)

您似乎正在尝试使用异步XMLHttpRequest加载页面,但服务器不会在其响应中提供跨源头(Access-Control-Allow-Origin)。出于安全原因,不建议使用异步XMLHttpRequest加载此类资源。

要绕过此限制,请将标记--disable-web-security添加到phantomJsArgs。

答案 1 :(得分:0)

只是猜测可能会发生什么:phantomjs仍默认为SSL 3.0请求,但许多网站已禁用SSL 3.0,因此这些请求将失败。要使用更现代的协议,请使用以下选项与phantomjs:

 --ssl-protocol=any