我正在使用PhantomJS 2.0获取某些网页的屏幕截图。因此,在此page中,我有HTML5的标记<video>
。但是,我一直在读PhantomJS没有支持它。所以我的想法是将此标记替换为<img>
。然后,为此,我需要获取视频内容的大小,创建具有此大小的图像元素并删除视频。
请记住它需要在PhantomJS中。
我试过了,但没有用!
var page = require('webpage').create();
page.open('http://webuser.nl', function(status) {
if (status !== 'success') {
phantom.exit();
} else {
page.viewportSize = { width: 1900, height: 1080 }; //these sizes can be others
page.evaluate(function(){
var video = document.getElementsByTagName("video")[0];
var w = video.clientWidth;
var h = video.clientHeight;
console.log("size->" + w + "x" + h);
var img = document.createElement("img");
img.src = 'background.png';
img.width = w;
img.height = h;
var source = video.getElementsByTagName("source")[0];
video.removeChild(source);
video.appendChild(img);
});
page.render(relative_path);
phantom.exit();
}
});
在此代码中,使用浏览器中的控制台(Chrome 46.0.24)可以正常工作,我调整窗口的大小,w
和h
更改,但在PhantomJS中,独立于视口,总是相同的大小,我无法将视频替换为图像。
有人知道我该怎么做或有其他想法吗? 谢谢!