无法将屏幕截图保存到casperjs中的位置(windows7 64位)

时间:2013-12-04 08:01:23

标签: phantomjs windows-7-x64 casperjs

当尝试捕获屏幕截图并将其保存在casperjs中时,会抛出以下错误

[error] [phantom]无法将屏幕截图保存到本地目录。请检查权限

试过很多方式,比如

  • 将其保存到其他位置,例如公共目录
  • 更改本地目录的权限。
  • 以管理员身份运行该流程。

我使用的是Windows 7 64位计算机。

已经通过此链接here

6 个答案:

答案 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在重写之前无法删除它。