2016-01-21 49 views
1

我使用phantomjs来截图页面,但无法截图页面的按钮。高度的如何使用phantomjs截图整个页面

var height = page.evaluate(function() 
{ 
    window.document.body.scrollTop = document.body.scrollHeight;          
    }   
); 

值是33943,但scrollHeight属性的真正价值是44135. 我如何可以加载整个页面?

var WebPage = require('webpage'); 
page = WebPage.create(); 
page.open('http://www.example.com'); 
page.onLoadFinished = function() { 
    page.render('screenshot.png'); 
    phantom.exit(); 
} 

不知道为什么你需要计算你的页面的高度:

the snapshot img

the page

回答

1

您可以通过快照页面。

+0

我试过了你的方法,还是不能加载页面的底部。我计算了高度以查看页面底部是否已加载。你可以看到我上传的图像。 –

+0

在页面加载后,内容是否动态加载**?如果是,则必须在捕获页面之前添加延迟。 – Raptor

+0

内容不是动态加载的。有些页面可以截取整个内容,但是当内容太长时,快照并不完整。 –

0

我设法通过设置页面属性设法截取了整个页面。

例如:

var width = 1024, height = 768; 
page.property("viewportSize", {'width': width, 'height': height}); 

,因为它返回的警告上docspage.viewportSize = { width: 1024, height: 768 };的一个可能不被更新:

警告:使用page.viewportSize = ...;不受支持。改用page.property('viewportSize',...)。有关页面#属性的更多示例,请参见自述文件。