2017-02-23 14 views
0

我使用PhaperomJs 2.0的CasperJS 1.1.0。我正在使用Linux服务器。 我有一个脚本,试图运行和截图。 此截图适用于本地服务器或直播。 截图的网站看起来就像这样:casperjs截图返回空白方块。请告诉我可能的解决方案,以获得字符,而不是框

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); 
}); 

请告诉我我错在哪里。

回答

1

我想对你想要的截图,而不是5秒硬等待的项目使用waitForSelector。考虑加入

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() 
+0

上面的代码是不是为我工作。我仍然得到方形框。 – user3335891

+0

@ user3335891告诉我你想刮的页面,我也许能帮助更多 – jakequade

+0

我再杀这个网站dev.bunkerbradleycouture.com自动化测试。 – user3335891

相关问题