Selenium会在没有GUI的Ubuntu上工作吗

Selenium会在没有GUI的Ubuntu上工作吗,ubuntu,selenium,codeception,Ubuntu,Selenium,Codeception,我在各种云平台上使用Codeception,比如AmazonAWS和Cloud9。默认情况下,两者都没有GUI。我的问题是,您能在这种类型的系统上运行Selenium吗?或者我需要某种方式获得GUI吗?Selenium只是一个库,因此它并不特别关心您是否在配备GUI的系统上运行它。您可能会问:如果我使用Selenium打开浏览器,那么该浏览器是否可以在没有GUI的系统上工作。答案是:视情况而定 有无头浏览器:也没有GUI组件的浏览器。是用硒包装的。另一种流行的浏览器是,它有第三方Selenium

我在各种云平台上使用Codeception,比如AmazonAWS和Cloud9。默认情况下,两者都没有GUI。我的问题是,您能在这种类型的系统上运行Selenium吗?或者我需要某种方式获得GUI吗?

Selenium只是一个库,因此它并不特别关心您是否在配备GUI的系统上运行它。您可能会问:如果我使用Selenium打开浏览器,那么该浏览器是否可以在没有GUI的系统上工作。答案是:视情况而定

有无头浏览器:也没有GUI组件的浏览器。是用硒包装的。另一种流行的浏览器是,它有第三方Selenium绑定库,名为。就我个人而言,我会避免这两种情况!HtmlUnit使用的JavaScript引擎当前的桌面浏览器都不支持,因此测试不是很可靠。GhostDriver有,因此也会导致不可靠的结果。PahntomJS绝对是一个选择,因为它使用WebKit——Safari和Chrome浏览器中的引擎,但你必须自己编写

大多数系统都允许您使用虚拟GUI。你提到了Ubuntu,它是Debian的衍生物。网上有几个教程告诉您如何安装Xvfb,其中大多数都不完整或错误。在Debian上安装无头浏览器,如下所示:

  • 安装Xvfb:
    apt获取安装Xvfb
  • 安装浏览器。假设您使用的是Debian服务器,您将无法使用apt get安装类似Firefox的东西,因为存储库不存在。取而代之的是谷歌“Firefox离线安装”或任何你想使用的浏览器,然后在你的服务器上使用
    wget
    来获取软件包
  • 将包解压缩到
    /usr/local/lib
    ,然后创建从
    /usr/local/bin
    到启动浏览器的二进制文件的软链接
  • 现在试着启动你的无头浏览器。例如,对于Firefox,您可以尝试:
    xvfb运行Firefox
    。这可能会产生一些错误,您必须修复这些错误。在我的例子中,我丢失了库
    libdbus-glib-1-2
    ,我可以使用apt-get安装它
  • 此时,您需要在运行Selenium测试之前启动Xvfb。大多数CI服务器都有一个用于Xvfb的插件,或者您可以从命令行执行此操作:
    Xvfb:99&
    。有关更多信息,请参阅

  • 您可以使用phantomjs之类的工具进行无头测试。一篇示例文章:这个答案正在升级,所以我想我应该添加:Chrome和Firefox现在支持开箱即用的无头模式,而不需要Xvfb。从Selenium 3.6.0开始,Selenium就支持这一点,没有任何特别之处。有一个问题:如果我们使用的是PhantomJS、GhostDriver、HTMLUnit等无头浏览器。我们还需要Xvfb吗?@Darshan当然不需要。