前言
本问介绍一种在无桌面(无 X server)的linux系统下,不用打开浏览器就可以完成网页页面截图的方法,之前多数用的是PhantomJS + Selenium的方法,但是我使用 PhantomJS + Selenium 时报错:
Selenium support for PhantomJS has been deprecated, please use
headless
原来是二者已分手,我们只能使用另一种方法,提供一个虚拟的界面。
安装xvfb以及pyvirtualdisplay
xvfb概述
X server是linux系统里面图形接口服务器的简称。windows系统的界面是这个系统不可分割的一部分,各种窗口操作界面显示都是由系统核心直接管理的,而linux的图形界面并比较常见的linux界面操作环境有KDE和GNOME,为它们提供系统支持的就是X server,而并非linux核心。
xvfb就是这么一个提供虚拟界面的工具, 这个工具相当于一个wrapper, 给应用程序提供虚拟的 X server(X server是Linux系统里面图形接口服务器的简称,常见的有KDE和GNOME)。
总结一句话就是 xvfb可以理解为虚拟的 linux界面,可以供应用程序使用。
安装xvfb
在ubuntu16.04系统下,使用如下命令安装
sudo apt-get install xvfb
验证使用
Xvfb :99 -ac 2>/dev/null &
export DISPLAY=:99
firefox