1验证码为图片/文字校验/短信验证码
a:比较省心的方式,要求开发在测试服去掉验证码
这种方法的优势:测试人员比较省心,开发工作量少
缺点:容易将问题代码发到线上,维护起来难,缺少验证码校验,功能不能完整测试
b:弄白名单账号,遇到白名单用户不需要验证码验证(或者万能验证码尤其是短信验证码),直接让登入
这种方法优势:测试人员省心
缺点:开发有一定的工作量,代码发上线有一定被爬的风险
c:通过在浏览器中新增cookie的方式,直接绕过验证码
缺点:测试人员需要有一定的代码量编写
优点:开发不需要动任何代码
下面说下自己亲身在ui自动化中如何通过增加cookie的方式绕过登入
1找开发询问:登入与否,在cookie是通过哪几个字段判断的
通过询问,了解到是jute_session_id 决定了用户是否登入
2验证开发说法是否正确
打开chrom浏览器,输入网址:
https://www.dxy.net/bbs/newweb-test/pc/home
登入用户名,密码
将cookie中jute_session_id 值复制下来,后续用到
退出用户的登入态
打开浏览器的开发者工具,找到appcation下的cookie
将上面的cookie直接全部清空
然后在cookie中增加刚才登入用户名,密码后的 jute_session_id 的值
然后刷新浏览器,看是否是登入状态
刷新后发现是登入状态,说明确实是cookie中的jute_session_id 决定了用户的登入状态
3编写代码实现
实现方案,首先打开网址,将初始cookie值全部获取,
通过循环将未登入下的这个值删除
新增我们登入过后的这个cookie值
再次刷新页面
发现已经可以实现绕过图片验证码
以下是代码
driver = webdriver.Chrome()
#driver = webdriver.Firefox()
driver.get("https://www.dxy.net/bbs/newweb-test/pc/home")
time.sleep(1)
abd=driver.get_cookies()
cookie1={
"domain": "www.dxy.net",
"expiry": 1655949616,
"httpOnly": True,
"name": u"JUTE_SESSION_ID",
"path": "/",
"secure": True,
"value": jute
}
for cookie in abd:
if cookie["name"]=="JUTE_SESSION_ID":
driver.delete_cookie("JUTE_SESSION_ID")
driver.add_cookie(cookie1)
else:
driver.add_cookie(cookie1)
#driver.add_cookie(cookie1)
time.sleep(3)
driver.refresh()
期间遇到的问题
1直接通过add_cookie 的方式,发现登入不成功,主要原因是cookie在塞进去后,刷新页面又重新会生成一个未登入的cookie值覆盖
2add_cookie 的方法,是通过name 和value的方式将cookie中键值对放进去的
比如一开始我的cookie1={"jute_session_id":"jute"} 这种方式是不对的,正确的格式是{"name":"jute_session_id","value":"jute"} 这样才能是正确的写法,被坑大了
直接add_cookie()的方式其实也是适用的,但是适用那些开始访问不会生成对应cookie值的网址,这样是可以的(未做验证,纯属猜测)
以上就是在做ui自动化时自己如何绕开图片验证登入的真实案例
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)