【问题标题】:Does chrome have to be installed to use Selenium chrome driver in headless mode?是否必须安装 chrome 才能在无头模式下使用 Selenium chrome 驱动程序?
【发布时间】:2019-12-04 22:42:11
【问题描述】:

如果 Selenium 使用 --headless 标志运行,是否可以仅使用 chrome 驱动程序运行测试?

我问这个是因为我需要测试作为 Jenkins 管道的一部分运行,但是 Jenkins 盒子没有安装任何浏览器,也无法访问互联网来安装它。由于我所处的公司环境,我无法绕过这些限制。

我正在调查Chrome Portable,如下所述:Running selenium tests in headless chrome without installing chrome browser

但是,我不确定这是否完全适用于 Selenium 的功能。有人提到他们无法在此处触发任何点击Python3, Selenium and Chrome portable

我也不能使用HtmlUnitDriver,因为它似乎没有发送通常使用ChromeIE 发送的SSO 请求标头。如果不发送这些标头,我们就无法访问应用程序,因为它们对我们进行了身份验证。

任何帮助将不胜感激。

【问题讨论】:

  • AFAIK,你应该在机器上安装 chromeon。或者,您可以使用具有所需配置的 SauceLabs 或从机并触发作业以在从机上运行。
  • @supputuri OP提到“......也无法访问互联网......”,所以SauceLabs是一个相当糟糕的建议。
  • @SiKing 这取决于sauceConnect隧道的配置方式。如果他们仍然使用 Intranet 配置隧道,他们应该可以访问 saucelabs。

标签: selenium google-chrome jenkins


【解决方案1】:

您当然需要在执行测试的任何机器上安装 Chrome……即使在无头模式下也是如此。但是,运行测试的带有浏览器的机器可以是不同的机器......您可以使用 RemoteWebdriver,这样它们就可以在与它们启动时不同的机器上执行。

【讨论】:

  • Jenkins 盒子无法访问互联网。那么远程 Web 驱动程序解决方案将如何工作?我假设 Jenkins 机器必须运行一些客户端代码来连接到安装了浏览器的远程机器?
  • 您在 jenkins 盒子上的代码将创建一个远程 Web 驱动程序实例,该实例将向远程运行的 selenium 服务器发送一个 http 请求......然后浏览器将在远程执行。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-02-10
  • 2020-02-04
  • 2021-04-11
  • 2021-09-08
  • 1970-01-01
  • 2017-12-24
  • 1970-01-01
相关资源
最近更新 更多