【问题标题】:Google 59 no longer supports embedded credentialsGoogle 59 不再支持嵌入式凭据
【发布时间】:2017-06-08 18:44:12
【问题描述】:

我是一名 QA 分析师,具有一些 JS 知识,并且正在使用 Selenium Webdriverjs 进行一些自动化。该站点需要用户名/密码,因此它是使用嵌入式凭据进行设计的(https://user:password@address.com)。然而,随着本周 Chrome 59 的最新更新,此功能不再被允许,即使作为配置更改也是如此。有谁知道如何处理当您到达需要它的站点时出现的身份验证框?我试过把它当作一个警告框,不相信它是一个模态窗口。任何帮助将不胜感激。

【问题讨论】:

  • AutoIt
  • 您在使用 Active Directory 吗? Chrome 和 IE 共享一个 Internet 设置,如果有,可以自动响应这些请求。
  • 感谢您的信息。不,不使用 AD,我正在运行 Mac OS。 Selenium 启动一个单独的/新的浏览器实例,因此现有的浏览器设置都不可用。这有助于测试以防止缓存信息影响测试结果。但这意味着任何浏览器设置都需要通过脚本传入。这个凭证盒真难倒我。
  • 您能否澄清您在使用屏幕截图时遇到的问题?但是您应该能够使用 chrome 选项加载带有保存密码的自定义配置文件并加载您的用户配置文件。另一种方法是包含 Robot.js 并让 robotsjs 与对话进行交互。
  • 感谢 Rup 提供的信息,我将查看 Robot.js 并使用自定义配置文件。 profile 方法可能不是一个好方法,因为我不想尝试避免测试中的任何环境损坏。我认为与消息框交互是一种更好的方法。我将使用我尝试与之交互的屏幕截图来更新问题。现在,作为一个临时(但 hackey)修复,我包含了第二个 get,它可以工作。任何帮助都将不胜感激。

标签: javascript selenium selenium-webdriver selenium-chromedriver


【解决方案1】:

SO 用户 zoonabar 在此 SO post 中提到了一个不错的 hack。如果您使用有效凭据点击资源/URL,则在实际点击需要凭据的 URL 之前,浏览器会缓存身份验证,然后您就可以使用它。请看他的回答。

这也在这里讨论过 - SO Post about Basic Authentication

另一种选择是运行透明代理来注入带有所需凭据的标头 - Florent B 在上面提到的同一链接中提到。

在我们的案例中,选项 1(由 zoonabar 提供)成功了。你也可以试试他的hack。

【讨论】:

  • 谢谢 demouser123,这是我现在正在使用的,第二个get 到同一个地址。即使它有效,它现在也是一种黑客攻击。最终它也可能不起作用,所以我想弄清楚如何与消息框交互。
  • 如果你喜欢它,你可以投票并接受答案:)
猜你喜欢
  • 1970-01-01
  • 2019-10-17
  • 2017-11-21
  • 2013-06-06
  • 1970-01-01
  • 1970-01-01
  • 2020-05-08
  • 2019-08-02
  • 1970-01-01
相关资源
最近更新 更多