【问题标题】:How to bypass the authentication popup using Selenium 4如何使用 Selenium 4 绕过身份验证弹出窗口
【发布时间】:2022-01-19 15:50:26
【问题描述】:

我尝试自动化的网站有不同的登录方法,具体取决于我所在的网络。当我不在公司的网络上时,它有它的登录表单,很容易实现自动化。但是,当我是公司的网络时,我必须通过 ADFS 身份验证弹出窗口 (this one) 登录。

我尝试将用户名和密码传递给 URL,但这不起作用。有没有办法绕过这个登录弹出窗口?

规格:

  • 硒 4.0.0
  • Chromedriver 96.0.4664.35
  • 铬 96.0.4664.110
  • openjdk 16.0.2

编辑:作为对某些 cmets 的回应,这就是我尝试将凭据传递给 URL 的方式:

driver.get(https://username:password@url)

很遗憾,由于隐私问题,我无法分享网址。

【问题讨论】:

  • 你能分享你如何将用户名和密码传递给 URL。另外,它是什么样的弹出窗口?
  • 这是一个我们可以看到的公共网站,还是除了上述@hfontanez 问题之外的内部网站?假设弹出窗口是一个 iframe,这个答案是否有帮助:stackoverflow.com/a/69974832/11543023
  • @djmonki 你知道我的问题在哪里。 +1。
  • Different ways to bypass authentication popup。如果你想通过 selenium 4 chromedevtools 协议来做,你可以看到this

标签: java selenium google-chrome selenium-chromedriver basic-authentication


【解决方案1】:

这个弹出窗口...

...看起来像 Basic Authentication 弹出窗口。

您可以绕过在 URL 中嵌入用户名和密码的弹出窗口,如下所示:

driver.navigate().to("http://<username>:<password>@your.website.com/basic_auth");

使用一组有效凭据打开 URL http://the-internet.herokuapp.com/basic_auth 的工作示例代码如下:

driver.navigate().to("http://admin:admin@the-internet.herokuapp.com/basic_auth");

参考文献

您可以在以下位置找到一些相关的详细讨论:

【讨论】:

  • 这个方法我试过了,可惜不行。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-05-11
  • 2018-10-21
  • 2019-01-22
  • 2014-08-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多