已经尝试了几个处理它但没有工作。
https://user:password@pageaddress.com
- 不起作用,Chrome启动受控制的自动化测试软件,无论如何都会出现身份验证弹出窗口。
将--disable-blink-features=BlockCredentialedSubresources
添加到Chrome arg并重复第1点 - 不起作用,原因与第1点相同。
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;
}}
通过selenium Action()
触发键盘或鼠标事件也不起作用。
chromedriver 2.31
Google Chrome Version 61
还有其他想法吗?也许一些js脚本?
答案 0 :(得分:0)
我有类似的here。 您可能不需要完整的Native Messaging API,但是...... 这将全部是JavaScript,适用于任何浏览器生成的身份验证请求(至少,它看起来是这样)。
webRequest - chrome和firefox - 有一个anAuthRequired事件。 您可以通过监听器挂钩,然后只需传递一些examples所需的凭据。
如果您只想传递不会发生变化的用户凭据,那么您将希望使用同步方法 - 它更容易。确实,This question可能就是您所需要的一切。
如果您需要传递不同的凭据,您可能希望查看异步方法,这是我必须使用的方法。 如果您正在使用Chrome,请忘记promises ...但Firefox应该使用它们。
希望这有帮助!