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

Sho*_*tar 4 python java selenium

在此输入图像描述

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

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

后来我尝试在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/")
Run Code Online (Sandbox Code Playgroud)

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

Sho*_*tar 10

我得到了这个解决方案,它适用于所有三种浏览器(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()
Run Code Online (Sandbox Code Playgroud)

注意:如果您还没有下载,请安装 win32com.client。要安装 win32com.client 使用以下命令

pip install pypiwin32
Run Code Online (Sandbox Code Playgroud)


And*_*son 8

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

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()
Run Code Online (Sandbox Code Playgroud)

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