如何自动化基本身份验证chrome警报

时间:2017-11-17 11:42:12

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

Chrome authentication popup

已经尝试了几个处理它但没有工作。

  1. https://user:password@pageaddress.com - 不起作用,Chrome启动受控制的自动化测试软件,无论如何都会出现身份验证弹出窗口。

  2. --disable-blink-features=BlockCredentialedSubresources添加到Chrome arg并重复第1点 - 不起作用,原因与第1点相同。

  3. driver.switchTo().alert.authenticateUsing(new UserAndPassword(user, password)) - 这里好像驱动程序没有看到警报,有一个检查它并且返回false的implented方法:

    private Alert alert; public boolean isAlertPresent() { try { waitForTimeout(10, TimeUnit.SECONDS); alert = driver.switchTo().alert(); return true; } catch (NoAlertPresentException e) { return false; }}

  4. 通过selenium Action()触发键盘或鼠标事件也不起作用。

    chromedriver 2.31 Google Chrome Version 61

  5. 还有其他想法吗?也许一些js脚本?

1 个答案:

答案 0 :(得分:0)

我有类似的here。 您可能不需要完整的Native Messaging API,但是...... 这将全部是JavaScript,适用于任何浏览器生成的身份验证请求(至少,它看起来是这样)。

webRequest - chromefirefox - 有一个anAuthRequired事件。 您可以通过监听器挂钩,然后只需传递一些examples所需的凭据。

如果您只想传递不会发生变化的用户凭据,那么您将希望使用同步方法 - 它更容易。确实,This question可能就是您所需要的一切。

如果您需要传递不同的凭据,您可能希望查看异步方法,这是我必须使用的方法。 如果您正在使用Chrome,请忘记promises ...但Firefox应该使用它们。

希望这有帮助!