PhantomJS:QNetworkReply :: NetworkError(TimeoutError)

时间:2016-07-11 18:15:48

标签: javascript jquery selenium phantomjs browser-automation

我遇到了phantomjs无法连接到网站的问题,因为它显示在那些调试日志中:

Network - Resource request error: QNetworkReply::NetworkError(TimeoutError) ( "Socket operation timed out" ) URL: "https://google.com/"

代码就像这样简单,一旦网站被记录,通常会截取屏幕截图。

var page = require('webpage').create();
page.onConsoleMessage = function(msg) {
    console.log('CONSOLE: ' + msg);
};
page.open('https://google.com/');
page.onLoadFinished = function() {
    console.log('super launch');
    page.render('google.png');
    console.log('super end');
    phantom.exit();
}

但是,没有拍摄截图,很明显PhantomJS没有连接到https://google.com

截取文档代码的截图相同:

var page = require('webpage').create();
page.open('http://github.com/', function() {
    page.render('github.png');
    phantom.exit();
});

将输出:

Network - Resource request error: QNetworkReply::NetworkError(TimeoutError) ( "Socket operation timed out" ) URL: "http://github.com/"

一个是HTTPS,一个是HTTP,没有工作。

我也在防火墙中启用了PhantomJS。

我尝试了测试套件,colorwheel.js工作得很好(评估脚本+在创建的页面上合成图像)但是technews.js在示例中不存在\

我还尝试使用--ignore-ssl-errors = true和--ssl-protocol = tlsv1,以及--ssl-protocol = any,没有任何改变。

发生了什么事?

感谢您的时间。

1 个答案:

答案 0 :(得分:0)

最后,我找到了问题的答案,但有些困难,但这很有趣。

路径必须是ISO 32(我相信),并且我有一个包含非ISO 32字符的父文件夹。只需将其移至完全兼容的路径即可使脚本正常工作。

道德:到处都是英语;)