我试图使用PhantomJS渲染屏幕截图 - 这很好。但是,我使用的一些URL具有片段标识符(例如http://blahblah.com/blahpage.html#item20
)。我想滚动到片段标识符的顶部,就像在真实浏览器中打开URL一样。有没有办法用PhantomJS本地做到这一点?
我使用了非常标准的PhantomJS渲染过程(page.open
,page.render
等),但它似乎只是忽略了片段标识符并给出了整个页面的屏幕截图。 / p>
答案 0 :(得分:0)
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
函数。