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

Phantomjs 无法将屏幕截图保存到casperjs(windows7 64位)中的某个位置,phantomjs,windows-7-x64,casperjs,Phantomjs,Windows 7 X64,Casperjs,当试图捕获屏幕截图并将其保存在casperjs中时,它抛出以下错误 [错误][幻影]无法将屏幕截图保存到本地目录。请检查权限 尝试了很多方法,比如 将其保存到其他位置,如公共目录 更改本地目录的权限 以管理员身份运行进程 我正在使用Windows7 64位计算机 我已经通过了这个链接,我也犯了同样的错误。从我发现的情况来看,当从没有响应主体的url/链接检索屏幕截图时,也可能会出现此错误 (另见) 所以我通过这样的方式解决了这个问题: ... if (this.exists("body

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

[错误][幻影]无法将屏幕截图保存到本地目录。请检查权限

尝试了很多方法,比如

  • 将其保存到其他位置,如公共目录
  • 更改本地目录的权限
  • 以管理员身份运行进程
我正在使用Windows7 64位计算机


我已经通过了这个链接,我也犯了同样的错误。从我发现的情况来看,当从没有响应主体的url/链接检索屏幕截图时,也可能会出现此错误 (另见)

所以我通过这样的方式解决了这个问题:

 ...

 if (this.exists("body")) {   // this refer to the casper object
     this.capture(myTrgFile);
}
请注意,请求主体和标记主体是两个不同的东西。我在示例中使用标记(“body”),只是因为它通常在请求html页面时出现。(标签主体位于请求主体中)


希望这能有所帮助……

我最近也遇到了同样的问题,我通过允许使用以下多种ssl协议解决了这个问题:

casperjs --ssl-protocol=any myscript.js

我也有同样的问题。保存名称也会导致此问题。 我曾经将文件名保存为get.Title() 某些站点名称不适合作为文件名

 var title = this.getTitle();
       this.echo(title);
        var filename = i + '_' + title + '.png';

-->
var filename=i+'..png'

在Windows上运行Casperjs时,我也遇到同样的错误。对我来说,关闭并重新打开命令提示符会使脚本再次工作

如果未指定文件扩展名,也可以获得该错误消息。没有默认图像扩展名,因此必须指定:

// this won't work
this.captureSelector("./images/filename", "html");

// this WILL work
this.captureSelector("./images/filename.png", "html");

有时同名文件已经存在,并且已被程序(图像查看器)打开,因此casperjs/phantomjs无法在重写之前删除该文件。

获得解决方案后,请通知我。我也面临同样的问题!您是否尝试将文件保存在同一文件夹中?您是否可以提供一些代码以供审阅和测试?这很有趣尝试保存在同一目录中只是出于好奇,我从未尝试将图像保存到其他位置,也从未遇到过问题。