我正在尝试使用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();
}
当我尝试抓住抽搐页面时,控制台正在打印出来。
答案 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