【发布时间】:2016-03-24 09:30:31
【问题描述】:
我在 Amazon AWS 和 Cloud 9 等各种云平台上使用 Codeception。默认情况下,它们都没有 GUI。我的问题是,你能在这种类型的系统上运行 Selenium 吗?还是我需要以某种方式获得 GUI?
【问题讨论】:
-
你可以使用 phantomjs 之类的东西来做无头测试。
标签: ubuntu selenium codeception
我在 Amazon AWS 和 Cloud 9 等各种云平台上使用 Codeception。默认情况下,它们都没有 GUI。我的问题是,你能在这种类型的系统上运行 Selenium 吗?还是我需要以某种方式获得 GUI?
【问题讨论】:
标签: ubuntu selenium codeception
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。这可能会产生一些错误,您必须修复这些错误。就我而言,我缺少库 libdbus-glib-1-2,我可以使用 apt-get 安装它。Xvfb :99 &。有关更多信息,请参阅docs。【讨论】: