当前位置: 首页 > news >正文

fetch 自动加cookie_selenium自动化测试之--验证码处理

由于登录反爬措施的越来越麻烦,甚至出现了12306这种看图识物的无敌验证码,我只能说,我选择死亡。这就衍生出了使用selenium来获取获取cookies。

因为经常会出现验证码,导致我们ui自动化测试工作无法更好开展,那么如何处理这种验证码呢?

5709a964a92d1b19710ec74d3ba9de3c.png

像这种滑块和手机验证码的情况下,无法通过正常办法是没有办法进行处理,那么 一般对这种处理有以下几种思路:

1、 通过接口请求,拿到对应验证码信息

2、 让开发配合把验证码搞成万能验证码

3、 注入cookies

那么如何通过注入cookies的形式来实现呢?

首先我们先通过自动化形式打开我们登录页面,此时我们加一定的延时时间,手动登录后,打印出来cookies信息,此时我们就知道所需要的cookies信息了。

driver = webdriver.Chrome()
driver.get("https://fly.layui.com/user/login/")
time.sleep(3)
cookies = driver.get_cookies()
print (cookies)

拿到cookies信息后,我们此时就可以去写登录的代码去免登陆了:
driver = webdriver.Chrome()
driver.get("https://fly.layui.com/user/login/")
cookies_01 = {'domain': 'fly.layui.com', 'expiry': 15522.125036, 'httpOnly': True, 'name': 'fly-layui', 'path': '/', 'secure': False, 'value': 's%3AwqpG2eBNqbfd6lmmWLc-DTiNP_.EAy1gm0u%2BCI8SMAxkFkaRWxUoGByz0g4RDXySLsjOfo'}
cookies_02 = {'domain': '.layui.com', 'expiry': 1567495108, 'httpOnly': False, 'name': 'Hm_lvt_d214947968792b839fd669a4decaaffc', 'path': '/', 'secure': False, 'value': '1551959096'}
cookies_03 = {'domain': '.layui.com', 'httpOnly': False, 'name': 'Hm_lpvt_d214947968792b839fd669a4decaaffc', 'path': '/', 'secure': False, 'value': '1558659109'}

driver.add_cookie(cookies_01)
driver.add_cookie(cookies_02)
driver.add_cookie(cookies_03)
driver.refresh()
刷新后就可以自动登录了。


但是这存在一个问题就是,如果cookies信息很多,一条条手动去添加过去麻烦,所以我们可以先把他存到一个文件中:
cookiesFile = json.dumps(cookies)
with open('cookiesFile.json', 'w') as filemy:
    filemy.write(cookiesFile)
这样你之前的cookies信息就会存在cookies文件中,下次要去使用就直接读文件就好了,具体实现如下:

with open('cookiesFile.json','r') as filemy:
    cookiesInfo=json.loads(filemy.read())

for cc in range(0,len(cookiesInfo)):

    driver.add_cookie(cookiesInfo[cc])
driver.refresh()
此时通过refresh后,我们就直接登入了系统,是不是很方便呢?

相关文章:

  • tomcat中的mdmp文件_Tomcat的使用(详细流程)
  • iot架构 mqtt netty_MQTT 协议是什么
  • echart 三维可视化地图_可视化地图是什么?推荐3个工具!
  • python修改json文件value值_python批量修改json文件
  • getpostdata php7.0_我整理的PHP 7.0主要新特性
  • 是什么字_面试官:“狗”字去掉一笔,是什么字?专科生1秒回答,全场鼓掌...
  • 判断字符串_04Python里字符串的常用操作方法三判断
  • intl扩展 mac 安装php_MAC下PHP7.1.23安装intl3.0.0
  • 5 日期范围查询_SQL 之 简单查询
  • 线段测量_CAD看图软件技巧:一分钟学会CAD多线段测量
  • python格式字符_相当实用的Python格式字符串,格式化
  • htmlcss项目实战源码_基于TensorFlow深度学习人脸识别源码级项目实战
  • com口测试好坏_用modscan测试modbus协议离散仪表数据方法
  • mysql 统计连续重复值_mysql统计某列值连续出现次数小于五次的记录
  • mysql视图代码_MySQL视图简介与操作的介绍(附代码)
  • Django 博客开发教程 16 - 统计文章阅读量
  • EventListener原理
  • HashMap ConcurrentHashMap
  • iOS帅气加载动画、通知视图、红包助手、引导页、导航栏、朋友圈、小游戏等效果源码...
  • js如何打印object对象
  • js写一个简单的选项卡
  • Koa2 之文件上传下载
  • LeetCode29.两数相除 JavaScript
  • Netty 框架总结「ChannelHandler 及 EventLoop」
  • Ruby 2.x 源代码分析:扩展 概述
  • webpack4 一点通
  • Yeoman_Bower_Grunt
  • 简析gRPC client 连接管理
  • 批量截取pdf文件
  • 如何优雅地使用 Sublime Text
  • 使用Tinker来调试Laravel应用程序的数据以及使用Tinker一些总结
  • 数据可视化之 Sankey 桑基图的实现
  • 小程序、APP Store 需要的 SSL 证书是个什么东西?
  • 新手搭建网站的主要流程
  • 优化 Vue 项目编译文件大小
  • 最简单的无缝轮播
  • ​LeetCode解法汇总1276. 不浪费原料的汉堡制作方案
  • # 飞书APP集成平台-数字化落地
  • %3cscript放入php,跟bWAPP学WEB安全(PHP代码)--XSS跨站脚本攻击
  • (HAL库版)freeRTOS移植STMF103
  • (二)hibernate配置管理
  • (汇总)os模块以及shutil模块对文件的操作
  • (机器学习-深度学习快速入门)第一章第一节:Python环境和数据分析
  • (六)激光线扫描-三维重建
  • (七)Java对象在Hibernate持久化层的状态
  • (十)【Jmeter】线程(Threads(Users))之jp@gc - Stepping Thread Group (deprecated)
  • (十八)三元表达式和列表解析
  • (五)网络优化与超参数选择--九五小庞
  • (转)四层和七层负载均衡的区别
  • .[backups@airmail.cc].faust勒索病毒的最新威胁:如何恢复您的数据?
  • .net core使用ef 6
  • .netcore 如何获取系统中所有session_如何把百度推广中获取的线索(基木鱼,电话,百度商桥等)同步到企业微信或者企业CRM等企业营销系统中...
  • .net利用SQLBulkCopy进行数据库之间的大批量数据传递
  • .set 数据导入matlab,设置变量导入选项 - MATLAB setvaropts - MathWorks 中国
  • /etc/sudoer文件配置简析