Phantomjs 幻影悬挂,因为它不';找不到现有资源

Phantomjs 幻影悬挂,因为它不';找不到现有资源,phantomjs,Phantomjs,我正在运行Flask(0.10.1)、Python(2.7)、Ubuntu(14.04)和PhantomJS(1.9) 我使用PhantomJS捕获地图图像,但它挂起,因为它无法找到我确信存在的本地和远程资源(本地css文件和CDN中的JQuery)(我可以使用Firefox、curl和wget毫无问题地获取这些资源) 顺便说一句,我注意到了一些令人费解的行为,比如直接从终端运行phantomjs时,捕获失败 phantomjs myscript.js 但我一走,它就成功了 strace ph

我正在运行Flask(0.10.1)、Python(2.7)、Ubuntu(14.04)和PhantomJS(1.9)

我使用PhantomJS捕获地图图像,但它挂起,因为它无法找到我确信存在的本地和远程资源(本地css文件和CDN中的JQuery)(我可以使用Firefox、curl和wget毫无问题地获取这些资源)

顺便说一句,我注意到了一些令人费解的行为,比如直接从终端运行phantomjs时,捕获失败

phantomjs myscript.js
但我一走,它就成功了

strace phantomjs myscript.js
但当我通过python子进程用strace启动phantomJS时,它再次失败

subprocess.call(["/usr/bin/phantomjs", "myscript.js"])
以下是每次故障时strace显示的内容:

select([4], [3], [], [], NULL)
我的phantomjs脚本很简单。我正在尝试捕获一个页面,并且添加了等待时间,因为有时候它允许phantomjs查找资源(一个本地css文件和来自CDN的JQuery)


有没有人遇到过类似的问题?您是如何解决的?

通常,我会说您的代码看起来不错,但没有代码很难做到这一点。请注册到
OnConsolleMessage
onError
onResourceError
onResourceTimeout
事件()。可能有错误。你真的在使用PhantomJS 1.9.0吗?如果是,那么您可能至少应该更新到1.9.8。URL是https URL吗?在1.9.9中,它仍然挂起。在1.9.8上,错误消息是
不安全的JavaScript尝试访问带有URL的框架关于:空自带有URL的框架file://myscript.js. 域、协议和端口必须匹配注意,我运行了
npm安装phantomjs@1.9.9
并成功安装。现在,尽管package.json表示版本为1.9.9,二进制表示版本为1.9.7
bin/phantomjs-v
返回1.9.7是,但npm包版本和phantomjs版本在1.9.7之后就脱离了轨道。我认为包1.9.13包含PhantomJS 1.9.8。“不安全…”行不是实际错误,而是错误。这只意味着你在1.9.8上。
page.open('http://127.0.0.1:xxxx/get-report-map', function() {
    window.setTimeout(function() {
        page.render('~/github24.png');
        phantom.exit();
    }, 8000);
});