selenium处理弹窗登录认证方案

在使用Selenium进行自动化测试时,遇到一个需要用户认证的网页。起初尝试用处理prompt弹窗的方法,但发现该弹窗是HttpBasicAuth请求鉴权。通过研究,了解到可以在http请求中直接携带用户名和密码,从而在访问URL时附带认证信息,如http://username:password@host:port/path/query。应用这种方法,成功跳过了授权弹窗并直接登录到页面。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景:

使用selenium开发相关自动化模块时,遇到一个网页需要进行用户认证,如下图所示
在这里插入图片描述
需要登录认证后才能进行后续操作。

解决思路:

面对这个弹窗,第一时间想到的是js的prompt弹窗,于是尝试使用webdriver.switch_to_alert()方法对其进行操作,出现如下报错提示:
在这里插入图片描述
显然,这个弹窗不属于常规prompt弹窗,无法通过alert对象操作;
经查询资料,得知此认证窗口为HttpBasicAuth请求鉴权时的提示框,从网络分析中也可以看到此时连接未完成,服务端在等待认证;
在这里插入图片描述
由此可以从主动提供用户密码这个思路着手,跳过这个认证提示;
查询资料,了解到http协议是可以直接携带用户名密码的,尝试在跳转页面时使用带用户名密码的链接访问:http://username:password@host:port/path/query

username="admin"
passwd="123"
web.get(f"https://{username}:{passwd}@192.168.xx.xx/Index.html")

成功跳过授权弹窗,直接登录到页面,问题解决!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值