Phantomjs casperjs返回空白方块的屏幕截图。请告诉我获取字符而不是框的可能解决方案

Phantomjs casperjs返回空白方块的屏幕截图。请告诉我获取字符而不是框的可能解决方案,phantomjs,casperjs,Phantomjs,Casperjs,我正在使用CasperJS 1.1.0和PhantomJs 2.0。我正在使用Linux服务器。 我有一个脚本,试图运行和截图。 此屏幕截图适用于本地服务器或live。 该站点的屏幕截图如下所示: https://i.stack.imgur.com/dJe4L.png 因此,它呈现的不是实际的字母,而是方形框 var casper = require('casper').create({ verbose: true, }); casper.options.waitTimeout = 4

我正在使用CasperJS 1.1.0和PhantomJs 2.0。我正在使用Linux服务器。 我有一个脚本,试图运行和截图。 此屏幕截图适用于本地服务器或live。 该站点的屏幕截图如下所示:

https://i.stack.imgur.com/dJe4L.png
因此,它呈现的不是实际的字母,而是方形框

var casper = require('casper').create({
    verbose: true,
});
casper.options.waitTimeout = 40000;
casper.options.viewportSize = {width: 1200, height: 768};
phantom.cookiesEnabled = true;
casper.start('http://domain.com/', function() {
    this.wait(5000, function () {
        this.echo(this.getTitle());
        this.capture("screenshot.png");
    });
});
casper.run(function () {
    this.exit(0);
});
请告诉我哪里错了。

我会用在你想要截图的项目上,而不是5秒的等待。考虑添加

verbose: true
waitTimeout:20000
这将给您20秒的等待限制,比默认的5秒长。然后,使用以下方法代替当前的等待:

this.waitForSelector('img', function() {
    this.capture('test.png')
}
您可以将img选择器更改为更具体的内容,但等待图像本身加载是确保捕获图像的一种非常确定的方式。我们将超时时间改为20秒的原因是为了防止他们的站点加载他们的图像需要更长的时间:)

如果这不起作用,请告诉我,乐意跟进。我需要的网站和图像的例子,你想虽然

编辑:可以确认这对我有效,如果对你有效,请告诉我

var casper = require('casper').create({
  verbose: true,
  logLevel: 'error',
  pageSettings: {
    loadImages: true,
    loadPlugins: true,
    userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11'
  },
  clientScripts: ['vendor/jquery.min.js', 'vendor/lodash.js'],
  viewportSize: {
    width: 1600,
    height:1000
  },
});

casper.start('http://dev.bunkerbradleycouture.com/')

casper.then(function() {
  this.waitForSelector('img', function() {
    this.capture('test.png')
  })
})

casper.run()

以上代码对我不起作用。但我还是得到了方形框。@user3335891显示您要刮取的页面,我可能可以帮助您更多我正在为自动测试而取消此网站dev.bunkerbradleycouture.com。如果可以确认此网站是否有效,请让我知道它是否适用于您:我正在为自动测试而取消此网站。但在取消了像这样的屏幕截图后,在我的本地机器上也可以,但在实时服务器上就不行了