Python + Selenium —— 使用cookie绕过验证码!

使用 cookie 绕过验证码这种方式前提是必须要有长时间保存 cookie 的功能,比如登录时会有勾选项"保存本次登录信息",“下次自动登录”,"记住我"等。

当你勾选类似的选项后,登录成功后服务器会要求浏览器将登录信息存储你到 cookie。我们就可以从浏览器 cookie 中获取储存的信息,添加到测试过程中的浏览器中,以达到绕过登录的目的。

还是以 showdoc 为例,showdoc 是默认保存 cookie 的。

首先查看登录前的 cookie 信息:

这里注意 domain, 因为会有很多百度相关的统计。只看你当前系统相关域名的 cookie。

登录后再查看一次 cookie 信息:

观察登录前后的 cookie,这里 token 很像是我们要的。🤭

如果你分辨不清楚,那就把登录前后有差异,并且是当前系统域名下的 cookie 全部加进去。

得到想要的 cookie 信息后,就可以使用 WebDriver 中的 add_cookie() 方法添加 cookie 了。

接下来的步骤就简单了:

  • 进入系统任意页面

  • 添加 cookie

  • 刷新页面

from selenium import webdriver
import time

driver = webdriver.Chrome()
driver.get('https://www.showdoc.cc')

time.sleep(1)   # => 等1秒,看看未登录的状态

# 以字典形式传入cookie,name的值对应浏览器cookie中的name列,value值对应cookie中的value列
driver.add_cookie({'name': 'cookie_token', 'value': '073fe7ab...cc1bc1ad'})

# 刷新页面,相当于重新发送请求
# 此时会携带cookie,所以刷新后的页面会以登录后的状态呈现
driver.refresh()    

# 观察一下,然后退出
time.sleep(5)
driver.quit()

以上面的方式就可以实现绕过登录,不过这要注意以下两点:

  • 生成 cookie 的账号不能有退出操作,否则 cookie 会失效。

  • 注意 cookie 的有效期(Expires/Max-Age列),可能需要定时更新 cookie

下面是配套资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!

最后: 可以在公众号:自动化测试老司机 ! 免费领取一份216页软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。

如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

面试经典150题【41-50】

文章目录 面试经典150题【41-50】49.字母异位词分组1. 两数之和202.快乐数219. 存在重复元素II128.最长连续序列228. 汇总区间56.合并区间(华为面试题)57.插入区间452.用最少的箭引爆气球20.有效的括号 面试经典150题【41-50】 49.字母异位词分组 用这种…

关于vue创建项目以及关于eslint报错的问题

vue创建完项目以后如果报parsing error no babel config file。。。这样的错误的话,关闭项目,用vscode进入项目中打开项目就可以解决了。 1 代码保存的时候会自动将单引号报错为双引号 导致eslint报错的问题, 解决思路: 在项目根…

游戏寻路之A*算法(GUI演示)

一、A*算法介绍 A*算法是一种路径搜索算法,用于在图形网络中找到最短路径。它结合了Dijkstra算法和启发式搜索的思想,通过综合利用已知的最短路径和估计的最短路径来优化搜索过程。在游戏自动寻路得到广泛应用。 二、A*算法的基本思想 在图形网络中选择一个起点和终点。维护…

LED球泡灯高压线性恒流驱动芯片SM2235EGH原理与应用

高压线性恒流是一种LED恒流驱动芯片电子元件,它能够在高电压环境下提供稳定的电流输出。这种芯片采用线性恒流设计,能够确保电流的稳定性,适用于各种LED照明和其他需要恒流源的应用场景。 在设计高压线性恒流LED恒流驱动芯片时,需…

YOLOv9来了,YOLOv5和YOLOv8还香不香?

在目标检测领域,YOLO(You Only Look Once)一直是一种突破性算法。自YOLO算法问世以来,它已经演变为许多版本,其中最受欢迎的版本是YOLOv5和YOLOv8。这两个版本都有独特的特点和优势,使它们在各自的领域表现…

【短时交通流量预测】基于双层BP神经网络

课题名称:基于双层BP神经网络的短时交通流量预测 版本时间:2023-04-27 代码获取方式:QQ:491052175 或者 私聊博主获取 模型简介: 城市交通路网中交通路段上某时刻的交通流量与本路段前几个时段的交通流量有关&…

H5双人五子棋小游戏

H5小游戏源码、JS开发网页小游戏开源源码大合集。无需运行环境,解压后浏览器直接打开。有需要的,私信本人,发演示地址,可以后再订阅,发源码,含60+小游戏源码。如五子棋、象棋、植物大战僵尸、开心消消乐、扑鱼达人、飞机大战等等 <!DOCTYPE html> <html> <…

C++--机器人的运动范围

目录 1. 题目 2. 思路 3. C代码测试 4. 测试结果 1. 题目 地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动&#xff0c;每一次只能向左&#xff0c;右&#xff0c;上&#xff0c;下四个方向移动一格&#xff0c;但是不能进入行坐标和列坐标的数位之和大于k的格…

解决在 Mac 上安装 Adobe 软件弹出提示:安装包已经被损坏并且不能被打开。

问题&#xff1a; “INSTALLER” is damaged and can’t be opened. You should eject the disk image. 解决方法和步骤&#xff1a; 打开安装包&#xff1b;将安装包 “INSTALLER” 拖动复制到某个文件夹&#xff0c;复制后的文件路径例如像这样&#xff1a;/Users/michael…

Javaweb之SpringBootWeb案例之自动配置案例的自定义starter分析的详细解析

3.2.4.1 自定义starter分析 前面我们解析了SpringBoot中自动配置的原理&#xff0c;下面我们就通过一个自定义starter案例来加深大家对于自动配置原理的理解。首先介绍一下自定义starter的业务场景&#xff0c;再来分析一下具体的操作步骤。 所谓starter指的就是SpringBoot当…

【Bugs】java: 错误: 不支持发行版本 xx

文章目录 报错场景&#xff1a;报错原因&#xff1a;解决方法&#xff1a; 报错场景&#xff1a; IDEA运行Java项目报错&#xff0c;点击运行之后&#xff0c;IDEA在编译代码的时候就出现报错&#xff1a; 报错类型一&#xff1a;java: 错误: 不支持发行版本 21报错类型二&am…

基于STC12C5A60S2系列1T 8051单片机的TM1638键盘数码管模块的按键扫描、数码管显示按键值、显示按键LED应用

基于STC12C5A60S2系列1T 8051单片机的TM1638键盘数码管模块的按键扫描、数码管显示按键值、显示按键LED应用 STC12C5A60S2系列1T 8051单片机管脚图STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式及配置STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式介绍TM1638键盘…

IDEA创建Sping项目只能勾选17和21,却无法使用Java8

报错信息 The required java version 17 is not supported by the project SDK 1.8.The maximum supported Java version is 8. 想创建一个springboot项目&#xff0c;本地安装jdk版本为1.8&#xff0c;但是在使用 Spring Initializr创建项目时,版本只能选择21或17&#xff0c;…

递归算法题练习(数的计算、带备忘录的递归、计算函数值)

目录 递归的介绍 递归如何实现 递归和循环的比较 例题: &#xff08;一、斐波那契数列&#xff0c;带备忘录的递归&#xff09; 如果直接使用递归&#xff0c;难以算出结果&#xff0c;需要优化 优化方法&#xff1a;带备忘录的递归 &#xff08;二、数的计算&#xff09…

ttkefu在线客服如何获取代码

注册并登录ttkefu账号。可以在ttkefu的官方网站&#xff08;https://www.ttkefu.com/&#xff09;上进行注册和登录。下载并安装ttkefu的PC端软件。可以在官方网站上的下载页面&#xff08;https://www.ttkefu.com/download.html&#xff09;找到下载链接。在软件中获取代码。登…

算法中栈的应用

目录 栈 练习1&#xff1a;删除字符串中的所有相邻重复项 练习2&#xff1a;比较含退格的字符串 练习3&#xff1a;基本计算器II 练习4&#xff1a;字符串解码 栈 栈 是一种常见的数据结构&#xff0c;遵循先进后出&#xff08;LIFO&#xff09;的原则&#xff08;最后进入…

Linux系统:内核参数调优

目录 1、/proc目录 2、sysctl命令 3.1 控制源路由验证 3.2 控制内核的系统请求调试功能 3.3 控制核心转储是否将PID附加到核心文件名 3.4 控制TCP同步cookie的使用 3.5 在网桥上禁用netfilter 3.6 控制消息队列的默认最大大小 3.7 调试TCP内核参数 3.8 调试套…

解读:DUSt3R: Geometric 3D Vision Made Easy

概述&#xff1a;给定一个无约束图像集&#xff0c;即一组具有未知相机姿态和内在特征的照片&#xff0c;我们提出的 DUSt3R 方法会输出一组相应的点阵图&#xff0c;从中我们可以直接恢复通常难以一次性估算的各种几何量&#xff0c;如相机参数、像素对应关系、深度图和完全一…

微信小程序-2

数据绑定 index.js Page({data: {info: hello world,randomNumber: Math.random() * 10,imgSrc:http://www.itheima.com/images/logo.png} })index.wxml <view>{{ info }}</view><view>{{ randomNumber > 5 ? 随机数大于等于5 : 随机数小于5 }}</v…

HarmonyOS—HAP唯一性校验逻辑

HAP是应用安装的基本单位&#xff0c;在DevEco Studio工程目录中&#xff0c;一个HAP对应一个Module。应用打包时&#xff0c;每个Module生成一个.hap文件。 应用如果包含多个Module&#xff0c;在应用市场上架时&#xff0c;会将多个.hap文件打包成一个.app文件&#xff08;称…