2014-10-28 190 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函數。