如何使用python(加上java)处理selenium中的windows身份验证弹出窗口 [英] How to handle windows authentication popup in selenium using python(plus java)

查看:226
本文介绍了如何使用python(加上java)处理selenium中的windows身份验证弹出窗口的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述



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

 来自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和Firefox中运行良好IE,但不适用于Chrome。有没有办法,至少我可以使用python& amp;在Java的情况下我缺少什么。请建议我任何解决方案,尝试了很多

解决方案

我得到了这个适用于所有三种浏览器的解决方案(Firefox,Chrome来自selenium import webdriver
导入时间
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 


I tried the below code, but it didn't work for me

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

Later on I tried to use the same approach in Java

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

But unfortunately it didn't work for me in any browser. Am I missing something here?

Then I tried with AutoIT in Java

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

It works well in Firefox & IE, but didn't work for Chrome. Is there any way that at-least I can achieve this in selenium using python & what I am missing in case of Java. Please suggest me any solution, tried a lot

解决方案

I got this solution which is working well for all three browser(Firefox, Chrome and 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()

Note : Install win32com.client if you have not downloaded. To install win32com.client use below command

pip install pypiwin32

这篇关于如何使用python(加上java)处理selenium中的windows身份验证弹出窗口的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆