当前位置: 首页 > 面试题库 >

Selenium是否可以在没有GUI的Ubuntu上工作?

栾瑞
2023-03-14
问题内容

我在诸如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上,您可以安装无头浏览器,如下所示:

  1. 安装Xvfb: apt-get install xvfb
  2. 安装浏览器。假设您使用的是Debian服务器,您将无法安装带有apt-get的Firefox之类的程序,因为不存在存储库。取而代之的是Google之类的“ Firefox离线安装”之类的东西,或者您想使用的任何浏览器,然后wget在您的服务器上使用它们来获取软件包。
  3. 将软件包解压缩,例如/usr/local/lib,然后创建一个指向/usr/local/bin启动浏览器的二进制文件的软链接。
  4. 现在尝试无头启动浏览器。例如,对于Firefox的你会尝试:xvfb-run firefox。这可能会产生一些错误,您必须修复。就我而言,我缺少libdbus-glib-1-2可以使用apt-get安装的库。
  5. 此时,您将需要在运行Selenium测试之前启动Xvfb。大多数CI服务器都有Xvfb的插件,也可以从以下命令行进行操作:Xvfb :99 &。有关其他信息,请参阅文档。


 类似资料:
  • 问题内容: 我们正在考虑将生产服务器从Ubuntu- Desktop 10.04 升级到Ubuntu- Server 12.04。 我们在当前的桌面操作系统上运行着各种服务,例如Selenium Web Driver。我的问题是Selenium Web Driver是否可以从基于cli的系统中运行? 我立即想到的是,它不能,因为它依赖Firefox,但我希望有人证明我做错了! 问题答案: 您正在寻

  • 我有一个第三方库(ElasticSearch5.x),它使用log4j2。我的应用程序使用SLF4J。log4j的第2版是否有与第1版适配器(log4j-over-slf4j)类似的适配器? 只是为了澄清一下:我不想实际使用log4j或log4j2作为实际的实现(绑定)。我会用logback。所以我需要一个log4j2到slf4j的适配器,而不是slf4j绑定。 我还应该提到,我已经找到并尝试了这

  • 问题内容: 我知道不可能在ubuntu上编码测试,因为我需要苹果的xCode,但是我想知道,一旦编码,是否可以在Ubuntu上运行自动化测试。 谢谢。 问题答案: 否,不幸的是,appium需要使用xCode才能使用UiAutomation和工具在iOS上执行测试。

  • 问题内容: 我已经下载并安装了IDEA 13.1。但是,即使具有64位系统,Windows也会自动将程序安装在专用于32位程序的文件夹中。 是否有适用于64位版本的其他下载文件,或者可能有特殊设置以使其适合64位系统? 问题答案: 在中,有一个名为的可执行文件。这适用于64位系统。您只需将IntelliJ快捷方式路径更改为该路径即可。 您还需要添加一个指向您的64位JDK 的新环境变量,以便Int

  • 是否可以在没有实体的情况下使用JpaRepository?在这种情况下,将其替换为DTO。 如下示例所示 这种情况有替代方案吗? 注意:DTO已经映射,但我不想创建视图来将此DTO转换为实体。 我已经验证了这个主题,但没有重大进展,请使用无实体的JpaRepository交互样式 我在试这个 接口- 公共接口BffDTOInterface2{ } 我有这个错误

  • 问题内容: 我已经在旧版Spring MVC应用程序中实现了Spring Session 。我还使用来设置,因为我需要一些服务器亲和力才能运行Talend作业。 当运行前端并检查Chrome中的页面时,我看到了该会话的附件。如果将其从“ node1”编辑为“ node2”,则保留该会话。如果我在部署期间重新部署服务器并发出请求,我将被重定向到集群中的另一个节点,这意味着Spring Session