Selenium自动化测试 —— 通过cookie绕过验证码的操作!

验证码的处理

  对于web应用,很多地方比如登录、发帖都需要输入验证码,类型也多种多样;登录/核心操作过程中,系统会产生随机的验证码图片,进行验证才能进行后续操作

解决验证码的方法如下:

1、开发做个万能验证码(推荐)
2、测试环境关闭验证码功能(推荐)(开发配置)
3、图片识别技术(不稳定)
4、调用开发生成验证码接口(和开发配合)
5、第三方验证码平台(打码兔)
6、cookie绕过验证码(推荐)

cookie处理

假如我们需要验证浏览器中是否存在cookie,因为基于真实的cookie是无法通过白盒和集成测试完成的,webdriver可以读取、添加和删除cookie信息

webdriver操作cookie的方法如下:

get_cookies() 获取所有cookie信息
get_cookie(name) 返回特定name有cookie信息
add_cookie(cookie_dict) 添加cookie,必须有name和value值
delete_cookie(name) 删除特定部分的cookie信息
delete_all_cookies() 删除所有cookie信息

备注:add_cookie()里面放置字典参数,cookie字典一般需要包含name、value、domain、path等字段,如果遇到cookie有Expirse字段,要去掉

举例实战:利用cookie完成网站的免密码应用

第一步的代码思路:只是为了把登录后的cookie信息写入到excel中为后面的免密码登录做准备工作

1、打开网站的登录页面
2、等待60s,这个时间手动去输入用户名、密码、验证码登录
3、获取登录之后cookie
4、把登录之后cookie写入到excel中

代码如下:

前置条件:导入xlwt库

import os
import time
import xlwt
from selenium import webdrivercurrent_path = os.path.dirname(os.path.abspath(__file__))  # 当前路径
driver_path = os.path.join(current_path,'../webdriver/chromedriver.exe')  # driver路径
driver = webdriver.Chrome(executable_path=driver_path)  # Firefox,Ie等driver.get('http://47.107.187.54/zentao/www/index.php?m=user&f=login')  # 打开禅道地址workbook = xlwt.Workbook(encoding='utf-8')  # 设置workbook对象
sheet = workbook.add_sheet('Sheet01')  # 新增sheet页名称
sheet.write(0,0,'number')  # 通过行列坐标写入值
sheet.write(0,1,'name')
sheet.write(0,2,'value')
sheet.write(0,3,'path')
sheet.write(0,4,'domain')time.sleep(30)  # 手动输入 用户名、密码、验证码时间
cookies = driver.get_cookies()  # 获取登录后的cookie信息for i in range(1,len(cookies)+1):  # 遍历cookie的值,并通过行列坐标写入值sheet.write(i,0,i)sheet.write(i, 1,cookies[i-1]['name'])sheet.write(i, 2,cookies[i-1]['value'])sheet.write(i, 3,cookies[i-1]['path'])sheet.write(i, 4,cookies[i-1]['domain'])workbook.save('test.xls')  # 保存并设置excel的名称

第二步的代码思路:

1、打开网站的登录页面
2、用add_cookie()方式把excel中的cookie信息添加到cookie中
3、刷新网站,即可完成自动登录操作

代码如下:

前置条件:导入xlrd库

import os
import time
import xlrd
from selenium import webdrivercurrent_path = os.path.dirname(os.path.abspath(__file__))  # 当前路径
driver_path = os.path.join(current_path,'../webdriver/chromedriver.exe')  # driver路径
driver = webdriver.Chrome(executable_path=driver_path)  # Firefox,Ie等driver.get('http://47.107.187.54/zentao/www/index.php?m=user&f=login')  # 打开禅道地址
workbook = xlrd.open_workbook('test.xls')  # 打开指定的excel文件
sheet = workbook.sheet_by_name('Sheet01')  # 找到指定的sheet页# 遍历sheet页中有效的行,在把excel中cookie信息添加到cookie中,实现免登录
for i in range(1,sheet.nrows):driver.add_cookie( {'name':sheet.cell_value(i,1),'value':sheet.cell_value(i,2),'path':sheet.cell_value(i,3),'domain':sheet.cell_value(i,4)} )time.sleep(3)
driver.refresh()  # 刷新

今天的分享就到此结束了,大家还有什么不懂的可以评论区下留言哈,如果我的文章对你有所帮助的话,可以点赞三联支持一下

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/142379.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ChatGPT 现在可以看、听和说话了!

🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 &a…

玩转Mysql系列 - 第23篇:mysql索引管理详解

这是Mysql系列第23篇。 环境:mysql5.7.25,cmd命令中进行演示。 代码中被[]包含的表示可选,|符号分开的表示可选其一。 关于索引的,可以先看一下前2篇文章: 什么是索引? mysql索引原理详解 本文主要介…

Apache shiro RegExPatternMatcher 权限绕过漏洞 (CVE-2022-32532)

漏洞描述 2022年6月29日,Apache 官方披露 Apache Shiro (CVE-2022-32532)权限绕过漏洞。 当Apache Shiro中使用RegexRequestMatcher进行权限配置,且正则表达式中携带"."时,未经授权的远程攻击者可通过构造恶…

【医疗图像处理软件】重要功能集合

很高兴在雪易的CSDN遇见你 ,给你糖糖 欢迎大家加入雪易社区-CSDN社区云 一起挑战150岁生命线! 前言之前:从事医疗器械行业使我们更加关注自己的健康,每天看着髋膝关节置换的手术视频,我们会更加爱护自己的膝盖。同…

服务断路器_服务雪崩解决方案之服务降级

什么是服务降级 两种场景: 当下游的服务因为某种原因响应过慢,下游服务主动停掉一些不太重要的业务,释放出服务器资源,增加响应速度!当下游的服务因为某种原因不可用,上游主动调用本地的一些降级逻辑,避免…

http基础教程(超详细)

HTTP HTTP 一 、基础概念 请求和响应报文URL 二、HTTP 方法 GETHEADPOSTPUTPATCHDELETEOPTIONSCONNECTTRACE 三、HTTP 状态码 1XX 信息2XX 成功3XX 重定向4XX 客户端错误5XX 服务器错误 四、HTTP 首部 通用首部字段请求首部字段响应首部字段实体首部字段 五、具体应用 连接管理…

vue_Delete `␍`eslint(prettier/prettier)

Delete ␍eslint(prettier/prettier) 错误的解决方案 问题背景 在Windows笔记本上新拉完代码,在执行pre-commit时,出现如下错误: Delete ␍eslint(prettier/prettier)问题根源 罪魁祸首是git的一个配置属性:core.autocrlf 由于…

小程序编译器性能优化之路

作者 | 马可 导读 小程序编译器是百度开发者工具中的编译构建模块,用来将小程序代码转换成运行时代码。旧版编译器由于业务发展,存在编译慢、内存占用高的问题,我们对编译器做了一次大规模的重构,采用自研架构,做了多线…

C++——安装环境、工具

一、进入官网下载 Visual Studio 下载地址:https://visualstudio.microsoft.com/zh-hans/ 二、安装 三、安装完后如果出现window SDK 下载失败,可自行下载,如果没有请跳过这一步 Window SDK 官方地址:https://developer.microsoft…

详解Java执行groovy脚本的两种方式

详解Java执行groovy脚本的两种方式 文章目录 详解Java执行groovy脚本的两种方式介绍记录Java执行groovy脚本的两种invokeFunction:invokeMethod:以下为案例:引入依赖定义脚本内容并执行运行结果:例如把脚本内容定义为这样:执行结果就是这样了…

Java 大厂八股文面试专题-JVM相关面试题 类加载器

Java 大厂八股文面试专题-设计模式 工厂方法模式、策略模式、责任链模式-CSDN博客 JVM相关面试题 1 JVM组成 1.1 JVM由那些部分组成,运行流程是什么? 难易程度:☆☆☆ 出现频率:☆☆☆☆ JVM是什么 Java Virtual Machine Java程序…

Oracle VM VirtualBox安装并下载安装CentOS7

Oracle VM VirtualBox安装并下载安装CentOS7 Oracle VM VirtualBox下载CentOS创建虚拟机 Oracle VM VirtualBox VM下载链接 https://www.oracle.com/cn/virtualization/virtualbox/ 点击链接直接下载就行,下载完默认安装或者更改一下安装目录。 下载CentOS http://…

竞赛 基于生成对抗网络的照片上色动态算法设计与实现 - 深度学习 opencv python

文章目录 1 前言1 课题背景2 GAN(生成对抗网络)2.1 简介2.2 基本原理 3 DeOldify 框架4 First Order Motion Model5 最后 1 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 基于生成对抗网络的照片上色动态算法设计与实现 该项目较为新颖&am…

面试题08.05.递归算法

递归乘法。 写一个递归函数,不使用 * 运算符, 实现两个正整数的相乘。可以使用加号、减号、位移,但要吝啬一些。 示例1: 输入:A 1, B 10输出:10示例2: 输入:A 3, B 4输出:12提示: 保证乘法…

【解决】Unity3D中无法在MQTT事件中执行Animator

问题原因: 解决方法: 解决过程 1、在 Unity 中创建一个名为 MainThreadDispatcher 的脚本,用于处理主线程操作。 using System.Collections.Generic; using UnityEngine;public class MainThreadDispatcher : MonoBehaviour {private stati…

JDK、JRE 和 JVM 的区别和联系

三者关系 就这三者的关系而言,jvm是jre的子集,jre是jdk的子集,具体关系如下图: Java的执行流程 对于一个Java程序,其执行流程大致如下: 开发人员使用JDK编写和编译Java源代码,生成Java字节码文…

【SQL server】数据库入门基本操作教学

个人主页:【😊个人主页】 系列专栏:【❤️初识JAVA】 前言 数据库是计算机系统中用于存储和管理数据的一种软件系统。它通常由一个或多个数据集合、管理系统和应用程序组成,被广泛应用于企业、政府和个人等各种领域。目前常用的数…

安防视频平台EasyCVR视频调阅全屏播放显示异常是什么原因?

安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快,可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等,以及支持厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等。平台既具备传统安…

KF32A学习笔记(一):工程导入、编译烧录方法(KF32 IDE+ KF32 PRO)

目录 概述KF32 IDE打开现有项目工程1.工程导入2.编译工程3.下载程序 KF32 PRO 概述 本文主要是对KF32A150芯片程序的编译、烧录方法进行说明。针对开发过程中的编译烧录和无代码情况下的烧录两种场景,需要安装ChipON PRO KF32和ChipON IDE KF32两个上位机工具&…

LLM之Colossal-LLaMA-2:Colossal-LLaMA-2的简介、安装、使用方法之详细攻略

LLM之Colossal-LLaMA-2:Colossal-LLaMA-2的简介、安装、使用方法之详细攻略 导读:2023年9月25日,Colossal-AI团队推出了开源模型Colossal-LLaMA-2-7B-base。Colossal-LLaMA-2项目的技术细节,主要核心要点总结如下: >> 数据处…