当我按照本教程(http://phantomjs.org/screen-capture.html)进行屏幕捕获时,我遇到了一些关于动态数据可视化的问题。
在该教程中,它使用了一些代码:
var page = require('webpage').create();
page.open('http://localhost:8080/index.html', function() {
page.render('screenshot.png');
phantom.exit();
});
但这似乎只适用于静态页面。我想知道我是否有一些用户交互并改变了该页面(如鼠标点击更改颜色等),怎么能我捕获哪个显示当前屏幕?< / p>
如果幻影可以不以这种方式工作,那么是否有人会建议其他解决方案?
答案 0 :(得分:1)
当然,只需在page.open()
之后和page.render()
之前添加所需的功能。
page.open('http://localhost:8080/index.html', function() {
/**
* Add your events and actions here...
* or call JS functions of the page itself...
*/
page.evaluate(function() {
/**
* Inject a <style text/css> tag in the head,
* which set the bgcolor
*/
var style = document.createElement('style'),
text = document.createTextNode('body { background: red }');
style.setAttribute('type', 'text/css');
style.appendChild(text);
document.head.insertBefore(style, document.head.firstChild);
});
page.render('screenshot.png');
phantom.exit();
});
请记住,您正在使用Javascript,并且可以注入任意帮助程序脚本,如CasperJS或jQuery,并在加载的页面上使用它们的功能。
获取灵感: