selenium自动化测试之--验证码处理
由于登录反爬措施的越来越麻烦,甚至出现了12306这种看图识物的无敌验证码,我只能说,我选择死亡。这就衍生出了使用selenium来获取获取cookies。
因为经常会出现验证码,导致我们ui自动化测试工作无法更好开展,那么如何处理这种验证码呢?
像这种滑块和手机验证码的情况下,无法通过正常办法是没有办法进行处理,那么 一般对这种处理有以下几种思路:
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后,我们就直接登入了系统,是不是很方便呢
selenium自动化测试之--验证码处理的更多相关文章
- selenium自动化测试之整合测试报告
selenium自动化测试之整合测试报告 标签(空格分隔): 整合报告 如下截图我们添加一个文件叫做:latest_report.py文件, import time import os import ...
- Selenium自动化测试之结果处理
Selenium自动化测试之结果处理 一.断言 断言相当于性能测试中的检查点,常用断言种类很多,具体可以查看断言API:判断预期结果和实际结果是否一致,断言成功,程序继续处理,失败则终止运行,示例如下 ...
- Selenium自动化测试之数据驱动及用例管理
Selenium自动化测试之数据驱动及用例管理 一.TestNg注解介绍 @Test:表示一个测试方法,在运行测试用例过程中,会自动运行@Test注解的方法. 例:
- Selenium自动化测试之基本控件使用
Selenium自动化测试之基本控件使用 1.输入框input: 在Html中样式: <input id="username" type="text"&g ...
- Selenium自动化测试之启动浏览器
Selenium自动化测试之启动浏览器 一.Eclipse新建java工程 1.新建java工程:File->New->Java Project,输入Project name:如AutoT ...
- python selenium自动化测试之路(1)--分层测试概念、selenium工具介绍
1.分层自动化测试概念 传统的自动化市场更关注产品UI层的自动化测试,而分层的自动化测试倡导产品开发的不同阶段都需要自动化测试 大多公司与研发团队其实是忽略了单元测试与集成测试阶段的自动化测试工作,所 ...
- Python&Selenium自动化测试之PO设计模式
一.摘要 Page Object模式,后面简称PO,他是一种设计思想,在上一章节中,曾经列举了一些在编写自动化测试过程中随着代码量的增加导致的大量代码难以维护.难以扩展.可读性极差等灾难性的事件:那么 ...
- Python+selenium自动化测试之浏览器基础操作
**前言** 本文主要讲解webdriber框架,Selenium 就像真实用户所做的一样,Selenium 测试可以在 Windows.Linux 和 Macintosh上的 Internet ...
- Selenium自动化测试之Selenium IDE
简介 Selenium IDE 是实现Web自动化的一种便捷工具,本质上它是一种浏览器插件.该插件支持Chrome和Firefox浏览器,拥有录制.编写及回放操作等功能,能够快速实现Web的自动化测试 ...
随机推荐
- Python语言的缺点
- 数据节点Datanodes
- 利用阿里云容器服务打通TensorFlow持续训练链路
本系列将利用Docker和阿里云容器服务,帮助您上手TensorFlow的机器学习方案 第一篇:打造TensorFlow的实验环境 第二篇:轻松搭建TensorFlow Serving集群 第三篇:打 ...
- HZOJ big
考试的时候理解错题了(无语)…… 那个看似很长的式子的意义其实是逻辑左移动,就是最高位会出现在最低位的意思(这谁能看出来……).此时x取值经过那个式子后仍然可以遍历[0,2^n), O(m)枚举断点, ...
- 【Bzoj1875】HH去散步
[Bzoj1875]HH去散步 先说一下边点互化的思路(貌似这种题不多?),以后看见边数少的要死的记得想边点乎化,将无向边变成有向边在考虑边之间的可达性,如果边x的终点是边y的起点(前提不是同一条边) ...
- @atcoder - ABC133F@ Colorful Tree
目录 @description@ @solution - 1@ @accepted code - 1@ @solution - 2@ @accepted code - 2@ @details@ @de ...
- 安装win下的Anaconda ----针对python3.6.4版本
我的python版本是3.6.4, Anaconda下载地址: Anaconda官网:https://repo.anaconda.com/archive/ 清华大学镜像站:https://mirror ...
- H3C ISDN BRI和PRI
- X Samara Regional Intercollegiate Programming Contest
A. Streets of Working Lanterns - 2 对于每个括号序列,存在一个\(mv\),表示要接上这个序列至少需要\(-mv\)个左括号,同时处理出接上这个序列后,左括号数量的增 ...
- codeforces 1230 div2
C 给一个图,并且在边上放上多米诺骨牌,使得每个多米诺骨牌指向的顶点的数字是一致的,并且每种骨牌只能用一种.问最多能够覆盖多少条边. 先生成每一个点指向的数字,然后判断就好了. #include< ...