【UI自动化测试】12_web自动化测试 _验证码处理和cookie

文章目录

  • 一、验证码
    • [1.1 验证码处理-方法](#1.1 验证码处理-方法)
    • [1.2 验证码-总结](#1.2 验证码-总结)
  • 二、cookie
    • [2.1 cookie-方法](#2.1 cookie-方法)
    • [2.2 如何通过cookie来跳过登录](#2.2 如何通过cookie来跳过登录)
    • [2.3 cookie-案例](#2.3 cookie-案例)
    • [2.4 cookie-总结](#2.4 cookie-总结)

一、验证码

验证码:一种随机生成的信息(数字、 字母、 汉字、 图片、 算术题) 等为了防止恶意的请求行为, 增加应用的安全性。

yacas 复制代码
为什么要学习验证码?  
- 在Web应用中,大部分系统在用户登录注册的时候都要求输入验证码,而我们在设计自动化测试脚本的时候,就需要面临处理验证码的问题。 

1.1 验证码处理-方法

说明: Selenium中并没有对验证码处理的方法, 在这里我们介绍一下针对验证码的几种常用处理方式

python 复制代码
方式:
	1). 去掉验证码
		(测试环境-采用)
	2). 设置万能验证码
		(生产环境和测试环境-采用)
	3). 验证码识别技术
		(通过Python-tesseract来识别图片类型验证码; 识别率很难达到100%)
	4). 记录cookie
     	(通过记录cookie进行跳过登录)

提示 :

python 复制代码
1. 去掉验证码、设置万能验证码:都是开发来完成,我们在这里不做讲解
2. 验证码识别技术:成功率不高,验证码种类繁多,不太适合
3. 记录cookie:比较实用,我们对它进行下讲解

1.2 验证码-总结

Python 复制代码
1、什么是验证码?
  - 一种随机生成信息(文字、数字、图片)
2、验证码作用
  - 防止恶意请求
3、验证码处理方式
  - ①去掉验证码(项目在测试环境、公司自己的项目)
  - ②设置万能验证码(测试环境或线上环境,公司自己项目)
  - ③使用验证码识别技术 (由于现在的验证码千奇百怪,导致识别率太低)
  - ④使用cookie解决(推荐)

二、cookie

1、Cookie是由Web服务器生成的, 并且保存在用户浏览器上的小文本文件, 它可以包含用户相关的信息。

2、Cookie数据格式: 键值对组成(python中的字典)。

3、Cookie产生: 客户端请求服务器, 如果服务器需要记录该用户状态, 就向客户端浏览器颁发一个Cookie数据。(服务器自动生成cookie)

4、Cookie使用: 当浏览器再次请求该网站时, 浏览器把请求的数据和Cookie数据一同提交给服务器, 服务器检查该Cookie, 以此来辨认用户状态。

yacas 复制代码
cookie的应用场景  

- 实现会话跟踪, 记录用户登录状态
- 实现记住密码和自动登录的功能
- 用户未登录的状态下, 记录购物车中的商品  

说明: Selenium中对cookie操作提供相应的方法

python 复制代码
方法:
# name:为cookie的名称
1. driver.get_cookie(name) 		--> 获取指定cookie
2. driver.get_cookies() 		--> 获取本网站所有本地cookies
3. driver.add_cookie(cookie_dict)  --> 添加cookie,cookie_dict:一个字典对象,必选的键包括:"name" and "value"

2.2 如何通过cookie来跳过登录

1、先找开发确认被测系统是否是使用cookie技术记录的用户登录状态。

  • 并不是所有的系统都是使用的cookie来进行用户身份记录,学习接口测试时候还有token和Session的方式

2、找开发继续确认记录用户登录状态cookie的name是什么。

3、手工登录,F12打开浏览器获取cookie信息。

  • 百度:记录用户身份凭证的cookie的name叫BDUSS。(以百度为例)
python 复制代码
dict_cus = {"name": "BDUSS", "value":"05VkJaelAtblhuV2hIQncxS0p2N1l4MVNrdmctZGxWREUwNWdYTjRwV1N3Y1pjRVFBQUFBJCQAAAAAAAAAAAEAAAD82ggPMTUwNjkxNTU1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJI0n1ySNJ9ca0"}

4、脚本打开浏览器网址之后,添加cookie到浏览器,刷新页面

python 复制代码
# 添加cookie到本地浏览器
driver.add_cookie(dict_cus)
# 刷新 必须进行刷新才能看到效果
driver.refresh()
python 复制代码
"""
    需求:使用cookie实现百度登录
    依赖kookies: BDUSS
"""
from time import sleep
import time
from selenium import webdriver
from selenium.webdriver.common.by import By

# 2、打开浏览器-创建浏览器驱动对象
driver = webdriver.Chrome()
# 最大化浏览器
driver.maximize_window()
# 隐式等待
driver.implicitly_wait(10)

driver.get("https://www.baidu.com")

# 添加cookie到本地浏览器
dict_cus = {"name": "BDUSS", "value":"05VkJaelAtblhuV2hIQncxS0p2N1l4MVNrdmctZGxWREUwNWdYTjRwV1N3Y1pjRVFBQUFBJCQAAAAAAAAAAAEAAAD82ggPMTUwNjkxNTU1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJI0n1ySNJ9ca0"}
driver.add_cookie(dict_cus)

# 获取指定cookie的信息
cookie = driver.get_cookie("BDUSS")
print("cookie:", cookie)

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

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

# 暂停 2
sleep(5)
# 关闭驱动对象
driver.quit()
python 复制代码
1 cookie 介绍:
	生成:由服务器生成
	作用:标识一次对话的状态(登录的状态)
	使用:浏览器自动记录cookie,在下一条请求时将cookis信息自动附加请求

2 应用:
	方法: 
		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. 必须进行刷新操作。
相关推荐
Ama_tor2 小时前
Flask |零基础进阶(上)
后端·python·flask
喵手2 小时前
Python爬虫实战:数字时光机 - 基于 Playwright 的网页全貌归档系统(HTML + 截图)(附CSV导出 + SQLite持久化存储)!
爬虫·python·爬虫实战·playwright·零基础python爬虫教学·csv导出·网页全貌归档
@陈小鱼2 小时前
基于 Savitzky-Golay滤波器的超声图像运动分析方法
python·计算机视觉·matlab·信号处理
七夜zippoe2 小时前
属性测试革命:Hypothesis框架深度实战指南
python·性能测试·数据驱动·hypothesis·状态机测试
linux_cfan2 小时前
2026版 WordPress 视频插件终极选型:知识付费创作者如何低成本打造专业在线课堂?
前端·javascript·音视频·html5
艾醒(AiXing-w)2 小时前
技术速递——通义千问 3.5 深度横评:纸面超越 GPT‑5.2,实测差距在哪?
人工智能·python·语言模型
pas1362 小时前
46-mini-vue 实现编译 template 为 render 函数
前端·javascript·vue.js
木斯佳2 小时前
前端八股文面经大全:京东零售前端实习一面(2026-1-20)·面经深度解析
前端·状态模式·零售
喵手2 小时前
Python爬虫实战:自动化构建 arXiv 本地知识库 - 从 PDF 下载到元数据索引!
爬虫·python·自动化·arxiv·本地知识库·pdf下载·元数据索引