前言:之前记录过通过截图获取验证码的方式实现登录,但目前存在识别不准确的情况,因此有本篇通过cookie绕过登录验证的方法,绕过登录后,可以便于对系统的功能界面进行自动化测试设计
一、关于cookie的一些认知
1、浏览器的缓存有两种机制,cookies和session;
相同点:cookies和session都是有服务器生成,
不同点:cookie将保留在浏览器本地,session记录在服务器端
2、cookie的几大属性
name:名字(键),cookies的必须字段
values:值
domain:域,cookie的作用域名
path:表示路径,/表示当前域名下所有的网页都能使用该cookie
domain和path结合在一起使用限定了cookie的使用范围
expires:生命周期,限定cookie的使用时间。如果生命周期中有session的说明cookie只在当前回话中有效,关闭浏览器后立即失效
sessionID:本次访问回话留下的ID
3.浏览器获取cookie信息
二、具体的方式
--碎碎念
操作的步骤:
1.登录一次目标网站,获取cookie信息
2.编写程序:导入selenium,通过driver获取目标界面,将cookie数据加入到driver中,刷新界面。
3.尝试捕获登录后界面数据,检验是否绕过登录验证
--代码展示
# 导入selenium,BY
from selenium import webdriver
from selenium.webdriver.common.by import By
# 1访问界面
url = '手动打码'
driver = webdriver.Chrome()
driver.get(url)
time.sleep(2)
#2.添加Cooke信息,从F12中获取
cookies = [{"name":"手动打码", "value":"手动打码"}]
time.sleep(2)
#3.加入cookie信息
for cookie in cookies:
driver.add_cookie(cookie)
#4.刷新进入登录后的界面
driver.refresh()
time.sleep(5)
#5.获取界面元素测试是否通过
driver.find_element(By.CLASS_NAME,"el-submenu__title").click()
time.sleep(2)
#6.退出
driver.quit()