我在各种云平台上使用Codeception,例如Amazon AWS和Cloud 9.默认情况下,它们都没有GUI。我的问题是,你能在这种类型的系统上运行Selenium吗?或者我需要以某种方式获得GUI?
答案 0 :(得分:6)
Selenium只是一个库,因此如果您在配备GUI的系统上运行它,它并不特别在意。您可能会问的是:如果我使用Selenium打开浏览器,该浏览器是否可以在没有GUI的系统上运行。对此的答案是:它取决于!
有无头浏览器:浏览器也没有GUI组件。 HtmlUnit与Selenium一起打包。另一个流行的浏览器是PhantomJS,其中包含名为GhostDriver的第三方Selenium绑定库。我个人避免这两个! HtmlUnit使用当前桌面浏览器都不支持的JavaScript引擎,因此测试不是很可靠。 GhostDriver有not been maintained for 2 years,因此也会产生不可靠的结果。 PahntomJS绝对是一个选项,因为它使用WebKit-- Safari和Chrome浏览器中的引擎,但您必须编写自己的API。
大多数系统都允许您拥有虚拟GUI。你提到了Ubuntu,这是一个Debian派生词。网上有几个教程告诉你如何安装Xvfb,其中大部分是不完整或错误的。在Debian上你安装了这样的无头浏览器:
apt-get install xvfb
wget
来获取包。/usr/local/lib
之类的地方,然后创建从/usr/local/bin
到启动浏览器的二进制文件的软链接。xvfb-run firefox
。这可能会产生一些错误,您必须修复。在我的情况下,我错过了我可以使用apt-get安装的库libdbus-glib-1-2
。Xvfb :99 &
。有关其他信息,请参阅docs。