PhantomJS滚动捕获片段标识符
问题描述:
我正在尝试使用PhantomJS渲染屏幕截图 - 这很好。但是,我正在使用的一些URL具有片段标识符(例如http://blahblah.com/blahpage.html#item20
)。我想滚动到片段标识符的顶部,就像在真实浏览器中打开URL一样。有没有一种方法可以用PhantomJS本地执行此操作?PhantomJS滚动捕获片段标识符
我使用一个非常标准的PhantomJS渲染过程(page.open
,page.render
等),但它似乎只是忽略片段标识符并给出整个页面的屏幕快照。
答
PhantomJS'page.render
通常只会呈现完整的页面,但如果设置了page.clipRect
,它将遵循rectange并将其用于渲染。问题当然是确定矩形的值。
您可以使用CasperJS” casper.captureSelector
根据散列来渲染页面:
casper.captureSelector("page.png", casper.evaluate(function(){
// the good thing is that this is already a CSS selector: "#id"
return window.location.hash;
}));
CasperJS是建立在PhantomJS的顶部。你当然可以编写你自己的getElementBounds
函数。