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