casperjs 网页截图时,如何保证那些下拉才加载的图片都能截到?

2014-10-22 18:40:43 +08:00
 13k
casperjs网页截图时,如何保证那些下拉才加载的图片都能截到,下午是了一下天猫,发现聚划算能正常截到,但是去到店铺页面截图就悲剧,图片基本出不来,截图基本是空白的。

```
var url = 'http://ju.taobao.com/jusp/muyingpindao/tp.htm?spm=608.2291429.764795.9.1O1daM';
url = 'http://inman.tmall.com';

var casper = require('casper').create({
verbose: true,
logLevel: 'debug',
pageSettings: {
loadImages: true,
loadPlugins: false,
userAgent: 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.102 Safari/537.36'
}});

casper.start(url).viewport(1322, 10000).then(function(){
console.log(this.getTitle());
this.scrollToBottom();
this.wait(60000);
});

casper.waitFor(function check() {
return this.evaluate(function() {
var images = document.getElementsByTagName('img');
return Array.prototype.every.call(images, function(i) { return i.complete; });
});
}, function then() {
this.capture('ju.taobao.com.png');
console.log('ju.taobao.com.png ok');
});

casper.run();
```
4272 次点击
所在节点    问与答
2 条回复
bsbgong
2014-10-22 19:18:49 +08:00
13k
2014-10-23 15:17:28 +08:00
```
var url1 = 'http://ju.taobao.com/jusp/nvzhuangpindao/tp.htm?spm=608.7192301.764795.3.cr8ku7#floor2';
var url2 = 'http://inman.tmall.com/';

var casper = require('casper').create({
verbose: true,
logLevel: 'warning',
pageSettings: {
loadImages: true,
loadPlugins: false,
userAgent: 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.104 Safari/537.36'
}});


casper.start(url1).viewport(1423, 7286).then(function(){
console.log(this.getTitle());
this.wait(60000);
});

casper.then(function(){
this.capture('./ju.png');
});

casper.run();
```

这段代码能正常对URL1截图,但是url2就是大部分恐空白 @bsbgong 能帮忙看看么?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/140808

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX