selenium软件测试验证码处理

复制代码
七、验证码
   7.1 什么是验证码?
      一种随机生成信息(文字、数字、图片)
   7.2 验证码作用
      防止恶意请求
   
   7.3 验证码处理方式
      1. 去掉验证码(项目在测试环境、公司自己的项目)
      2. 设置万能验证码(测试环境或线上环境,公司自己项目)
      3. 使用验证码识别技术 (由于现在的验证码千奇百怪,导致识别率太低)
      4. 使用cookie解决(推荐)
      
   7.4 cookie 介绍:
      生成:由服务器生成
      作用:标识一次对话的状态(登录的状态)
      使用:浏览器自动记录cookie,在下一条请求时将cookis信息自动附加请求
      
   7.5 应用:
      方法: 
         1. driver.get_cookies() # 获取所有的cookie
         2. driver.add_cookies({字典}) # 设置cookie
      步骤: 
         1. 打开百度url driver.get("http://www.baidu.com")
         2. 设置cookie信息: driver.add_cookie({"name":"BDUSS","value":"根据实际情况编写"})
         3. 暂停2秒以上
         4. 刷新操作 
      注意: 
         1. 以上百度BDUSS所需格式为百度网站特有,别的网站请自行测试。
         2. 必须进行刷新操作。
python 复制代码
# 导包
from selenium import webdriver
from time import sleep
# 获取浏览器驱动对象
driver = webdriver.Firefox()
# 最大化浏览器
driver.maximize_window()
# 隐式等待
driver.implicitly_wait(30)
# 打开url
# 设置cookie
url = "http://www.baidu.com"
driver.get(url)
driver.add_cookie({"name": "BDUSS", "value":"05VkJaelAtblhuV2hIQncxS0p2N1l4MVNrdmctZGxWREUwNWdYTjRwV1N3Y1pjRVFBQUFBJCQAAAAAAAAAAAEAAAD82ggPMTUwNjkxNTU1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJI0n1ySNJ9ca0"})

# 获取所有的cookies信息
# cookies = driver.get_cookies()
# print("cookies内容为:", cookies)
# for co in cookies:
#     print(co['name'])

# cookie = driver.get_cookie("BDUSS")
# print("cookie:", cookie)

# 暂停2秒
# sleep(2)
# 刷新 必须进行刷新才能看到效果
# driver.refresh()



"""
    目标: cookie操作
    案例:
        使用cookie绕过百度登录
    步骤:
        1. 手动登录百度网站
        2. 手动获取登录后的cookies 'BDUSS'
        3. 使用selenium内的add_cookie(name='BDUSS', value='xxxx')
"""




# 暂停 2
sleep(5)
# 关闭驱动对象
driver.quit()
相关推荐
qq_422152576 小时前
PDF页面管理的几种实用方法:拆分、合并、删除指定页面
java·前端·pdf
触底反弹6 小时前
💥 暴力解 LeetCode 导致 OOM:10000 行数据撑爆 V8 堆内存的完整排查
javascript·算法·面试
小小测试开发6 小时前
Midscene.js:14K Stars 视驱 UI 自动化框架,用截图替代 DOM 选择器写测试
javascript·ui·自动化
qq_212838976 小时前
后端Node.js + MySQL,前端Html+js,Nginx反向代理快速部署WEB项目
前端·mysql·node.js
Mh6 小时前
程序员和非程序员使用 AI 进行编程的区别究竟在哪里?
前端·javascript·xcode
承渊政道7 小时前
飞算Java炫技赛:Java×Unity数字孪生园区平台的从零落地记录
java·开发语言·unity·技术分享·vibe coding·飞算javaai·飞算java ai炫技赛
wdfk_prog13 小时前
嵌入式面试真题第 10 题:高优化等级下共享状态可见性、内存模型与系统级同步设计
java·linux·开发语言·面试·职场和发展·架构·c
卓怡学长13 小时前
w255基于springboot仓库管理系统
java·数据库·spring boot·spring·intellij-idea
谭光志14 小时前
Vibe Coding 时代,程序员该何去何从
前端·后端·ai编程
这个DBA有点耶16 小时前
SQL调优进阶:从“优化一条SQL”到“优化一个系统”的思维升级
java·大数据·数据库·sql·程序人生·dba·改行学it