当尝试捕获屏幕截图并将其保存在casperjs中时,会抛出以下错误
[error] [phantom]无法将屏幕截图保存到本地目录。请检查权限
试过很多方式,比如
我使用的是Windows 7 64位计算机。
已经通过此链接here
答案 0 :(得分:2)
我有同样的错误。从我发现的,当从没有响应体的url / link检索到屏幕截图时,也可能出现此错误 (另见here)
所以我通过类似的东西解决了这个问题:
...
if (this.exists("body")) { // this refer to the casper object
this.capture(myTrgFile);
}
请注意,请求正文和标记正文是两回事。我在我的示例中使用了标记(“body”),因为它通常在请求html页面时出现。 (标签正文位于请求正文中)
希望有所帮助...
答案 1 :(得分:0)
我最近遇到了同样的问题,我通过允许多个ssl协议使用以下内容解决了这个问题:
casperjs --ssl-protocol=any myscript.js
答案 2 :(得分:0)
我遇到过同样的问题。保存名称也可以解决这个问题。 我曾经将文件名保存为get.Title() 某些网站名称不适合作为文件名
var title = this.getTitle();
this.echo(title);
var filename = i + '_' + title + '.png';
- > var filename = i + '_.png';
答案 3 :(得分:0)
我在Windows上运行Casperjs时遇到了同样的错误。对我来说,关闭并重新打开命令提示符会使脚本再次运行。
答案 4 :(得分:0)
如果您尚未指定文件扩展名,也可以收到该错误消息。没有默认图片扩展名,因此您必须指定:
// this won't work
this.captureSelector("./images/filename", "html");
// this WILL work
this.captureSelector("./images/filename.png", "html");
答案 5 :(得分:0)
有时候一个同名的文件已经存在,并且由程序(图像查看器)打开,因此casperjs / phantomjs在重写之前无法删除它。