我在 Amazon AWS 和 Cloud 9 等各种云平台上使用 Codeception。默认情况下,这两个平台都没有 GUI。我的问题是,你能在这种类型的系统上运行 Selenium 吗?或者我需要以某种方式获得 GUI?
Selenium 只是一个库,因此它并不特别关心您是否在配备 GUI 的系统上运行它。您可能会问的是:如果我使用 Selenium 打开浏览器,该浏览器是否可以在没有 GUI 的系统上运行。答案是:这要看情况!
有无头浏览器:也没有 GUI 组件的浏览器。HtmlUnit与 Selenium 一起打包。另一种流行的浏览器是PhantomJS,其中有第三方 Selenium 绑定库,名为幽灵司机。我个人会避免这两种情况! HtmlUnit 使用当前桌面浏览器都不支持的 JavaScript 引擎,因此测试不太可靠。 GhostDriver 有2年未维护,因此也会导致不可靠的结果。 PahntomJS 绝对是一个选择,因为它使用 WebKit - Safari 和 Chrome 浏览器中的引擎,但您必须编写自己的API.
大多数系统都允许您拥有虚拟 GUI。您提到了 Ubuntu,它是 Debian 的衍生版本。网上有很多教程告诉你如何安装Xvfb,但大多数都不完整或错误。在 Debian 上,您可以像这样安装无头浏览器:
- 安装 Xvfb:
apt-get install xvfb
- 安装浏览器。假设您使用的是 Debian 服务器,您将无法使用 apt-get 安装 Firefox 之类的东西,因为存储库不存在。相反,谷歌类似“Firefox 离线安装”,或者任何你想使用的浏览器,然后使用
wget
在您的服务器上抓取包裹。
- 将包解压到类似的地方
/usr/local/lib
,然后创建一个软链接/usr/local/bin
到启动浏览器的二进制文件。
- 现在尝试启动无头浏览器。例如,对于 Firefox,您可以尝试:
xvfb-run firefox
。这可能会产生一些错误,您必须修复这些错误。就我而言,我错过了图书馆libdbus-glib-1-2
我可以使用 apt-get 安装它。
- 此时,您需要在运行 Selenium 测试之前启动 Xvfb。大多数 CI 服务器都有 Xvfb 插件,或者您可以从命令行执行此操作:
Xvfb :99 &
。请参阅docs获取更多信息。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)