我使用PhantomJS从任意URL创建屏幕截图。截图之前,我想操纵页面DOM去除所有下拉菜单,因为PhantomJS在页面的左上角错误地呈现它们(一个已知的Phantom issue。)使用PhantomJS进行DOM操作
我有一个简单的DOM脚本以做到这一点:
var selects = document.getElementsByTagName('select');
for (var i=0; i < selects.length; i++) {
document.getElementsByTagName('select')[i].style.visibility="hidden";
}
这已经过测试和独立的JavaScript正常工作。但是,它没有在PhantomJS代码里面工作,我使用收集的截图(显示最后一部分):
page.open(address, function (status) {
if (status !== 'success') {
console.log('Unable to load the address!');
} else {
window.setTimeout(function() {
var selects = document.getElementsByTagName('select');
for (var i=0; i < selects.length; i++) {
document.getElementsByTagName('select')[i].style.visibility="hidden";
}
page.render(output);
phantom.exit();
}, 200);
}
});
有些仍用错地方了一个选择框渲染。我很感谢帮助解决原始的PhantomJS渲染错误或隐藏DOM中的下拉菜单。谢谢。
链接已死 –