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() # 刷新
今天的分享就到此结束了,大家还有什么不懂的可以评论区下留言哈,如果我的文章对你有所帮助的话,可以点赞三联支持一下
相关文章:
Selenium自动化测试 —— 通过cookie绕过验证码的操作!
验证码的处理 对于web应用,很多地方比如登录、发帖都需要输入验证码,类型也多种多样;登录/核心操作过程中,系统会产生随机的验证码图片,进行验证才能进行后续操作 解决验证码的方法如下: 1、开发做个万能…...
链表(单链表、双链表)
前言:链表是算法中比较难理解的部分,本博客记录单链表、双链表学习,理解节点和指针的使用,主要内容包括:使用python创建链表、实现链表常见的操作。 目录 单链表 双链表 单链表 引入链表的背景: 先来看…...
面试题08.05.递归算法
递归乘法。 写一个递归函数,不使用 * 运算符, 实现两个正整数的相乘。可以使用加号、减号、位移,但要吝啬一些。 示例1: 输入:A 1, B 10输出:10示例2: 输入:A 3, B 4输出:12提示: 保证乘法…...
分布式IT监控系统
公司的IT系统越来越复杂,对运维和维护服务的需求也越来越高。在这种环境下,分布式IT监控系统应运而生。它逐渐成为公司提高运营效率、保证业务高效运营的关键工具,功能强大,性能优良。 分布式IT监控系统是什么? 分布…...
Redis 是什么?
Redis是一种基于内存的数据库,数据的读写都是在内存中完成的,因此读写速度非常的快,常用于缓存,消息队列,分布式锁等场景。 Redis 在高并发项目中,担任着非常重要的作用,扛高并发的,…...
本地源制作
title: 本地源制作 createTime: 2020-10-29 18:05:52 updateTime: 2020-10-29 18:05:52 categories: linuxyum tags: 制作本地源 通过 createrepo 制作本地源 前提 : 前提制作本地源的机器可以安装 这个软件例如 下载nginx的时候 自己加上 nginx的yum的数据源 (rp…...
树莓派(Linux系统通用)交叉编译(环境搭建、简单使用)
概念 交叉编译是指在一台计算机上编译运行在另一台计算机上的程序。(编译是指,在一个平台上生成在该平台上的可执行程序)通常情况下,编译器和目标平台的架构是不同的,例如,在一台x86平台上编译运行在ARM平…...
uniapp - 微信小程序实现腾讯地图位置标点展示,将指定地点进行标记选点并以一个图片图标展示出来(详细示例源码,一键复制开箱即用)
效果图 在uniapp微信小程序平台端开发,简单快速的实现在地图上进行位置标点功能,使用腾讯地图并进行标点创建和设置(可以自定义标记点的图片)。 你只需要复制代码,改个标记图标和位置即可。...
网络安全--IDS--入侵检测
1. 什么是IDS? IDS---入侵检测是防火墙的一个有力补充,形成防御闭环,可以及时、准确、全面的发现入侵弥补防火墙对应用层检查的缺失。对系统的运行状态进行监视,发现各种攻击企图、过程、结果,来保证系统资源的安全&a…...
js实现数组去重方式(12种方法)
目录 1、filter indexOf2、for object3、for includes4、for splice5、filter indexOf6、Map7、Set8、set Array.from9、sort 排序10、for findIndex11、双重for循环12、reduce 1、filter indexOf 数组去重:利用 filter 过滤 配合 indexOf 查找元素 var a…...
AI智能语音机器人的优势
1.高效自动拨号功能。 导入客户数据,外呼机器人自动拨号,无需看守,真人录音话术,定制场景问答和1秒内的问答响应,为客户带来真实准确的咨询体验。同时,每次通话结束后,外呼系统根据通话时间和关…...
BERT: 面向语言理解的深度双向Transformer预训练
参考视频: BERT 论文逐段精读【论文精读】_哔哩哔哩_bilibili 背景 BERT算是NLP里程碑式工作!让语言模型预训练出圈! 使用预训练模型做特征表示的时候一般有两类策略: 1. 基于特征 feature based (Elmo)…...
5-1.(OOP)初步分析MCV架构模式
组成:模型(model)、视图(view)、控制器(controller) view:界面、显示数据 model:数据管理、负责在数据库中存取数据以及数据合法性验证 controller:负责转…...
如何利用React和Flutter构建跨平台移动应用
如何利用React和Flutter构建跨平台移动应用 移动应用已经成为现代生活的一部分,每天都有大量的手机用户在使用各种各样的应用程序。对于开发者来说,构建一个适用于多个平台的移动应用是一个挑战。幸运的是,有一些工具可以帮助我们轻松地实现…...
npm install / webdriver-manager update报错 unable to get local issuer certificate
我这边遇到的问题,用的是angular,跑npm install的时候报错,一开始在.npmrc添加strict-sslfalse但是还是报错,搜索下记录。 参考解决: selenium - webdriver-manager update, Error: unable to get local issuer certi…...
电商项目高级篇-02 elasticsearch-下
电商项目高级篇-02 elasticsearch-下 4.2、QueryDSL返回指定字段 4.2、QueryDSL 返回指定字段 返回单个字段 GET bank/_search {"query": {"match_all": {}}, "sort": [{"balance": {"order": "desc"}}], &quo…...
计算机竞赛 深度学习人体跌倒检测 -yolo 机器视觉 opencv python
0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 **基于深度学习的人体跌倒检测算法研究与实现 ** 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🥇学长这里给一个题目综合评分(每项满…...
CloseableHttpClient详解
实现项目中的HttpUtil用到CloseableHttpClient,httpUtil源码:https://download.csdn.net/download/imwucx/88378340 于是学习CloseableHttpClient并记录一下。 一、CloseableHttpClient是什么? CloseableHttpClient实现了AutoCloseable接口和…...
从mysql 5.7 升级到 8.0 的一些注意事项
最近 mysql 5.7 版本将会终止安全更新,越来越多的朋友考虑升级 mysql 8.0,以下是一些刚开始使用时可能存在差异问题的地方,有一些其实在 mysql 5.7 版本里已经开始使用,这里整理一下方便查阅。 1、关于端口,该版本 My…...
喜迎中秋国庆双节,华为云Astro Canvas之我的中秋节设计大屏
目录 前言 前提条件 作品展示 薅羊毛 前言 大屏应用华为云Astro Canvas是华为云低代码平台Astro的子服务之一,是以数据可视化为核心,以屏幕轻松编排,多屏适配可视为基础,用户可通过图形化界面轻松搭建专业水准的数据可视化大屏…...
华为交换机Eth-Trunk配置实战:手工与LACP模式全解析(附排错指南)
华为交换机Eth-Trunk深度配置指南:从手工模式到LACP模式的技术实践 在企业网络架构中,带宽瓶颈和单点故障一直是困扰网络工程师的两大难题。记得去年参与某金融数据中心改造时,核心交换机之间的千兆链路在业务高峰时段频繁出现拥塞告警&#…...
别再只调PWM了!手把手教你优化STM32智能小车的红外循迹算法(五路传感器实战)
五路红外循迹算法进阶:从基础判断到PID控制的实战优化 当你看着自己组装的智能小车在赛道上磕磕绊绊地前行,时而冲出边界,时而左右摇摆,是否想过那些比赛场上流畅飞驰的小车究竟隐藏着什么秘密?本文将带你突破简单的i…...
小米音乐Docker化解决方案:打造智能家居音乐中枢实战指南
小米音乐Docker化解决方案:打造智能家居音乐中枢实战指南 【免费下载链接】xiaomusic 使用小爱同学播放音乐,音乐使用 yt-dlp 下载。 项目地址: https://gitcode.com/GitHub_Trending/xia/xiaomusic 小米音乐Docker项目是一款专为技术爱好者和开发…...
终极指南:如何用Python脚本5分钟获取百度网盘真实下载链接
终极指南:如何用Python脚本5分钟获取百度网盘真实下载链接 【免费下载链接】baidu-wangpan-parse 获取百度网盘分享文件的下载地址 项目地址: https://gitcode.com/gh_mirrors/ba/baidu-wangpan-parse 你是否曾经为百度网盘的下载速度而烦恼?每次…...
新手零基础入门:跟着快马生成的互动教程完成jdk17下载安装与第一个程序
作为一名Java初学者,第一次接触JDK安装可能会觉得有些迷茫。最近我在InsCode(快马)平台上尝试了一个JDK17安装教程项目,整个过程比我预想的要简单很多。下面就把我的学习笔记分享给大家,希望能帮助到同样刚入门的朋友。 JDK17下载步骤 首先需…...
突破性GPU显存释放技术:解决ComfyUI模型占用难题的底层API方案
突破性GPU显存释放技术:解决ComfyUI模型占用难题的底层API方案 【免费下载链接】ComfyUI-Easy-Use In order to make it easier to use the ComfyUI, I have made some optimizations and integrations to some commonly used nodes. 项目地址: https://gitcode.c…...
DDrawCompat:现代Windows系统下的经典图形API兼容解决方案
DDrawCompat:现代Windows系统下的经典图形API兼容解决方案 【免费下载链接】DDrawCompat DirectDraw and Direct3D 1-7 compatibility, performance and visual enhancements for Windows Vista, 7, 8, 10 and 11 项目地址: https://gitcode.com/gh_mirrors/dd/DD…...
太阳光模拟器的光源类型及标准分类
太阳光模拟器是可精准复现自然太阳光光谱、辐照强度性的核心测试设备,广泛应用于光伏测试、材料老化、航空航天等多个领域,为各类光敏工艺和材料的室内可控测试提供重要支撑。下文,紫创测控luminbox将从光源脉冲时间、IEC等级标准、光源种类以…...
Python类与对象实战:从简历模板到动态方法绑定的完整指南
Python类与对象实战:从简历模板到动态方法绑定的完整指南 面向对象编程(OOP)是现代编程语言的核心范式之一,而Python作为一门多范式语言,其面向对象特性尤为强大且易于使用。本文将通过构建一个简历模板系统的完整案例…...
SLAM Toolbox终极指南:5分钟掌握机器人定位与建图核心技术
SLAM Toolbox终极指南:5分钟掌握机器人定位与建图核心技术 【免费下载链接】slam_toolbox Slam Toolbox for lifelong mapping and localization in potentially massive maps with ROS 项目地址: https://gitcode.com/gh_mirrors/sl/slam_toolbox SLAM Tool…...
