【问题标题】:HTTP Basic Auth in Selenium GridSelenium Grid 中的 HTTP 基本身份验证
【发布时间】:2025-12-31 06:00:11
【问题描述】:

我想在Selenium Grid 中实现Basic Http Authentication 我该怎么做?例如:我想向网格发送请求,但在 URL 中没有身份验证。我需要在我们的内部 Selenium 网格中创建类似 http://username:password@mygrid.com:4444/wd/hub 的东西。我该怎么做?

【问题讨论】:

标签: selenium selenium-webdriver webdriver selenium-grid


【解决方案1】:

好的。我能够实现我所需要的。我安装了nginx 并添加了selenium 网格端点。然后加了

auth_basic           “Grid’s Area”;
auth_basic_user_file /etc/apache2/.htpasswd; 

nginx.conf。就是这样。

请记住网格有多个URI,并且没有任何root(在nginx 术语中)URI。因此,当您代理时,假设 /gridhttp://localhost:4444/grid/console 无法提供所有静态内容。在这种情况下,我们需要将/ 代理到http://localhost:4001。这是因为静态内容是从不同的URI 提供的。在我们的例子中,它是从 /grid/resources/org/openqa/grid/images/ 提供的,这与 /grid/console 不同。

至于让SSL 工作,我遵循this 指南,这非常容易。

【讨论】:

  • Short n sweet :) 太棒了!
  • +1 太棒了,我正朝着这个方向前进,但是通过引入代理不必要地使事情复杂化,很高兴它已解决。
  • 好的。尽管如此,我的重定向工作正常。但是如果我在nginx 后面,jscssjpg 基本上static 的内容就会丢失。 Selenium Gridjar 内的文件夹中有静态对象。但是nginx 不理解那条路径。我尝试了很多东西,但无法正常工作。有什么想法吗? @KrishnanMahadevan @nilesh ?
  • @Damien-Amen - 不,我认为没有任何解决办法
  • @KrishnanMahadevan:抱歉没有更新。我能够解决这个问题。事实上,我什至可以在grids 前面设置load balancer。还让SSL 工作。非常感谢!