我在诸如Amazon AWS和Cloud9等各种云平台上使用Codeception。默认情况下,这两个都没有GUI。我的问题是,您可以在这种类型的系统上运行Selenium吗?还是我需要以某种方式获取GUI?
Selenium只是一个库,因此,如果您在配备GUI的系统上运行它,它并不特别在乎。您可能要问的是:如果我使用Selenium打开浏览器,那么该浏览器是否可以在没有GUI的系统上运行。答案是:这取决于!
有无头浏览器:也没有GUI组件的浏览器。HtmlUnit与Selenium打包在一起。另一个流行的浏览器是PhantomJS,它具有名为GhostDriver的第三方Selenium绑定库。我个人会 避免这两种情况 !HtmlUnit使用当前桌面浏览器都不支持的JavaScript引擎,因此测试不是很可靠。GhostDriver已有2年没有得到维护,因此也无法获得可靠的结果。PahntomJS绝对是一个选择,因为它使用WebKit(Safari和Chrome浏览器中的引擎),但是您必须编写自己的API。
大多数系统将允许您具有虚拟GUI。您提到了Ubuntu,它是Debian的衍生产品。网上有几本教程告诉您如何安装Xvfb,其中大多数教程不完整或错误。在Debian上,您可以安装无头浏览器,如下所示:
apt-get install xvfb
wget
/usr/local/lib
/usr/local/bin
xvfb-run firefox
libdbus-glib-1-2
Xvfb :99 &