PhantomJS滚动以捕获片段标识符

时间:2014-10-28 11:20:34

标签: javascript phantomjs

我试图使用PhantomJS渲染屏幕截图 - 这很好。但是,我使用的一些URL具有片段标识符(例如http://blahblah.com/blahpage.html#item20)。我想滚动到片段标识符的顶部,就像在真实浏览器中打开URL一样。有没有办法用PhantomJS本地做到这一点?

我使用了非常标准的PhantomJS渲染过程(page.openpage.render等),但它似乎只是忽略了片段标识符并给出了整个页面的屏幕截图。 / p>

1 个答案:

答案 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函数。