Selenium只是一个库,因此,如果您在配备GUI的系统上运行它,它并不特别在乎。您可能要问的是:如果我使用Selenium打开浏览器,那么该浏览器是否可以在没有GUI的系统上运行。答案是:这取决于!
有无头浏览器:也没有GUI组件的浏览器。HtmlUnit与Selenium打包在一起。另一个流行的浏览器是PhantomJS,它具有名为GhostDriver的第三方Selenium绑定库。我个人会
避免这两种情况
!HtmlUnit使用当前桌面浏览器都不支持的Javascript引擎,因此测试不是很可靠。GhostDriver已有2年没有得到维护,因此也无法获得可靠的结果。PahntomJS绝对是一个选择,因为它使用WebKit(Safari和Chrome浏览器中的引擎),但是您必须编写自己的API。
大多数系统将允许您具有虚拟GUI。您提到了Ubuntu,它是Debian的衍生产品。网上有几本教程告诉您如何安装Xvfb,其中大多数教程不完整或错误。在Debian上,您可以安装无头浏览器,如下所示:
- 安装Xvfb:
apt-get install xvfb
- 安装浏览器。假设您使用的是Debian服务器,您将无法安装带有apt-get的Firefox之类的程序,因为不存在存储库。取而代之的是Google之类的“ Firefox离线安装”之类的东西,或者您想使用的任何浏览器,然后
wget
在您的服务器上使用它们来获取软件包。 - 将软件包解压缩,例如
/usr/local/lib
,然后创建一个指向/usr/local/bin
启动浏览器的二进制文件的软链接。 - 现在尝试无头启动浏览器。例如,对于Firefox的你会尝试:
xvfb-run firefox
。这可能会产生一些错误,您必须修复。就我而言,我缺少libdbus-glib-1-2
可以使用apt-get安装的库。 - 此时,您将需要在运行Selenium测试之前启动Xvfb。大多数CI服务器都有Xvfb的插件,也可以从以下命令行进行 *** 作:
Xvfb :99 &
。有关其他信息,请参阅文档。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)