2014-10-28 189 views
0

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

我使用一个非常标准的PhantomJS渲染过程(page.open,page.render等),但它似乎只是忽略片段标识符并给出整个页面的屏幕快照。

回答

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