如何使用python(加上java)处理selenium中的windows身份validation弹出窗口

在此处输入图像描述

我尝试了以下代码,但它对我不起作用

from selenium import webdriver driver=webdriver.Chrome('D:/BrowsersDriver/chromedriver.exe') driver.get('https://username:password@www.engprod-charter.net/') 

后来我尝试在Java中使用相同的方法

driver.get(’ https:// username:password@www.engprod-charter.net/ ‘)

但不幸的是,它在任何浏览器中都不适用于我。 我在这里错过了什么吗?

然后我尝试使用Java中的AutoIT

 Runtime.getRuntime().exec("D:\\FirefoxWindowAuthentication.exe"); driver.get("https://www.engprod-charter.net/") 

它在Firefox和IE中运行良好,但不适用于Chrome。 有没有办法,至少我可以使用python在selenium中实现这一点,以及在Java的情况下我缺少的东西。 请建议我任何解决方案,尝试了很多

尝试以下解决方案,如有任何问题,请告诉我:

 from selenium import webdriver from selenium.webdriver.common.keys import Keys import time driver=webdriver.Firefox() driver.get('https://www.engprod-charter.net/') time.sleep(3) driver.switch_to.alert.send_keys(username + Keys.TAB + password) time.sleep(3) driver.switch_to.alert.accept() 

以下是使用第三方autoHK lib在Windows上进行IE的解决方案

我得到了这个适用于所有三种浏览器(Firefox,Chrome和IE)的解决方案。

 from selenium import webdriver import time import win32com.client driver=webdriver.Firefox() driver.maximize_window() driver.get('https://www.engprod-charter.net/') shell = win32com.client.Dispatch("WScript.Shell") shell.Sendkeys("username") time.sleep(2) shell.Sendkeys("{TAB}") time.sleep(2) shell.Sendkeys("password") time.sleep(2) shell.Sendkeys("{ENTER}") time.sleep(2) driver.quit() 

注意:如果尚未下载,请安装win32com.client。 要安装win32com.client,请使用以下命令

 pip install pypiwin32