CasperJS截图只是页面的一小部分
CasperJS screenshot is only a small part of page
captureSelector()
的 CasperJS 文档没有说明如何设置屏幕截图的大小。默认设置(至少在我使用 webkit 的系统上是这样,Windows 8)似乎是截取页面左上角的一个小屏幕截图。
我是不是看错地方了?
我找到了 viewportSize
。我想这就是我需要的,但是有没有人有代码可以将其设置为合理的默认值(比如 100%)?
仅供参考 this.viewport('100%', '100%');
只是挂起,所以我认为它不需要 %
。
我是否必须将 return window 宽度和高度的代码注入页面并将其传回以提取它,或者是否有更简单的方法?
casper.captureSelector()
应该截取您 select 的元素的屏幕截图。如果你想截取整个页面的屏幕截图,你需要使用 casper.capture()
.
请注意,PhantomJS 的默认视口大小为 400x300。某些页面未正确调整大小,因此页面的一部分不可见。您需要将其设置为类似于桌面的东西:
var casper = require('casper').create({
viewportSize: {width: 1280, height: 800}
});
没有办法做到 100%。你可以做的是读出页面正文的宽度并通过 casper.viewport()
.
相应地设置视口
var width = 1280;
casper.start(url, function(){
width = this.evaluate(function(){
return document.body.clientWidth;
});
}).viewport(width, 800).then(function(){
this.capture("screenshot.png");
}).run();
captureSelector()
的 CasperJS 文档没有说明如何设置屏幕截图的大小。默认设置(至少在我使用 webkit 的系统上是这样,Windows 8)似乎是截取页面左上角的一个小屏幕截图。
我是不是看错地方了?
我找到了 viewportSize
。我想这就是我需要的,但是有没有人有代码可以将其设置为合理的默认值(比如 100%)?
仅供参考 this.viewport('100%', '100%');
只是挂起,所以我认为它不需要 %
。
我是否必须将 return window 宽度和高度的代码注入页面并将其传回以提取它,或者是否有更简单的方法?
casper.captureSelector()
应该截取您 select 的元素的屏幕截图。如果你想截取整个页面的屏幕截图,你需要使用 casper.capture()
.
请注意,PhantomJS 的默认视口大小为 400x300。某些页面未正确调整大小,因此页面的一部分不可见。您需要将其设置为类似于桌面的东西:
var casper = require('casper').create({
viewportSize: {width: 1280, height: 800}
});
没有办法做到 100%。你可以做的是读出页面正文的宽度并通过 casper.viewport()
.
var width = 1280;
casper.start(url, function(){
width = this.evaluate(function(){
return document.body.clientWidth;
});
}).viewport(width, 800).then(function(){
this.capture("screenshot.png");
}).run();