selenium验证码处理之cookie登录
在实际测试中会经常见到登录操作需要验证码验证登录
常见验证有以下几种:
- 验证码登录
- 图片识别

- 图片滑块识别验证

4.简单验证码计算
针对上面的登录验证解决办法有以下几种:
1.让开发去掉验证码(注释掉验证码相关代码)
2.设置万能验证码 (只适用于第一种验证码)
3 .验证码识别技术 (主要针对图片识别)
python的pytesseract库用于验证码识别
4.使用cookie记录登录,自动化脚本绕过验证环节
下面主要介绍使用cookie登录,以博客园为列,其他解决办法后面有时间再进行补充:
博客园登录验证为上图第三种:图片滑块识别验证
博客园登录页面:

第一步:获取cookie
首先编写登录脚本如下:
##登录时记得选择记住密码
from selenium import webdriver
from time import sleep Dirver = webdriver.Chrome()
Dirver.maximize_window()
Dirver.get("https://account.cnblogs.com/signin")
Dirver.implicitly_wait(10)
Dirver.find_element_by_id('LoginName').send_keys('username')
Dirver.find_element_by_id('Password').send_keys('password')
sleep(60) #代码运行到此处时,手动点击登录按钮并进行图片滑块验证,完成后,以下代码会获取登录成功后的页面cookie cookies = Dirver.get_cookies()
print(cookies)
Dirver.quit()
第二步:根据获取的cookie进行登录
from selenium import webdriver
from time import sleep Dirver = webdriver.Chrome()
Dirver.maximize_window()
Dirver.get("https://home.cnblogs.com/")
Dirver.implicitly_wait(10)
Dirver.add_cookie({'name':' ','value':''}) #输入第一步得到的值
Dirver.add_cookie({'name':'','value':''})
sleep(10)
Dirver.get("https://home.cnblogs.com/")
username = Dirver.find_element_by_css_selector('#header_user_right a:nth-child(2) ').text #获取用户名
print(username)
welcome = Dirver.find_element_by_id('header_user_left').text
print(welcome) #获取欢迎字样
sleep(3) Dirver.quit()
登陆成功后的页面如下:

关于自动化测试中的验证码登录的其他解决办法后续将一一补充
selenium验证码处理之cookie登录的更多相关文章
- selenium cookie 登录
前言 爬虫方向的小伙伴们都知道网页爬虫经常遇到的问题就是登录账户,有些简单的网站我们可以简单的send key来输入账户密码就可以登录,但是有很多网站需要验证码之类的就不太好用了,这时候就体现到了co ...
- python selenium cookie 登录
概要: 1.正常登录,使用selenium获取cookie: 2.保存cookie: 3.使用cookie登录. 4.python--2.7,selenium--3.4.1 步骤1 正常登录,使用se ...
- python3爬虫 - 利用浏览器cookie登录
http://blog.csdn.net/pipisorry/article/details/47980653 爬虫爬网站不免遇到需要登录的问题. 登录的时候可能还会碰到需要填验证码的问题, 有的验证 ...
- python3爬虫 - cookie登录实战
http://blog.csdn.net/pipisorry/article/details/47948065 实战1:使用cookie登录哈工大ACM网站 获取网站登录地址 http://acm.h ...
- python3+selenium入门13-操作cookie
可以把cookie理解为自己账户的身份证.因为http协议是无状态的,上一个请求和下一个请求没有关系.但是有时需要有关联.比如登录之后,才能进行操作这样的设置.这个就是cookie在起作用.登录成功时 ...
- JMeter学习-018-JMeter 配置元件之-HTTP信息头管理器-实现 Cookie 登录
之前写过一篇通过[HTTP Cookie管理器]实现登录态操作的文章,使用时需要配置每个键值对(如下图所示),相对来讲配置比较繁琐.其实,我们也可通过在[HTTP信息头管理器]添加 Cookie 信息 ...
- JMeter学习-012-JMeter 配置元件之-HTTP Cookie管理器-实现 Cookie 登录
前文我们讲过了若何获取登录后的 Cookie 信息,不知如何获取登录 Cookie 的朋友,敬请参阅我之前写的博文:Fiddler-005-获取 Cookie 信息.参阅上篇文章,获取到 Cookie ...
- Asp.Net Core 2.0 项目实战(10) 基于cookie登录授权认证并实现前台会员、后台管理员同时登录
1.登录的实现 登录功能实现起来有哪些常用的方式,大家首先想到的肯定是cookie或session或cookie+session,当然还有其他模式,今天主要探讨一下在Asp.net core 2.0下 ...
- net core体系-web应用程序-4asp.net core2.0 项目实战(1)-12基于cookie登录授权认证并实现前台会员、后台管理员同时登录
1.登录的实现 登录功能实现起来有哪些常用的方式,大家首先想到的肯定是cookie或session或cookie+session,当然还有其他模式,今天主要探讨一下在Asp.net core 2.0下 ...
随机推荐
- 第八讲 shiro 整合 ssm
1.整合ssm并且实现用户登录和菜单权限 2.将shiro整合到ssm中 (1)添加shiro相关jar包 (2)在web.xml中添加shiro配置 <!-- 新增shiro配置 --> ...
- netserver启动时报错 "Unable to start netserver with 'IN(6)ADDR_ANY' port '12865' and family AF_UNSPEC'"
netperf启动netserver时报错 "Unable to start netserver with 'IN(6)ADDR_ANY' port '12865' and family A ...
- SQL SERVER将多行数据合并成一行(转)
1)比如表中有三列数据: 2)执行如下查询: 1 SELECT [USER_NAME], [USER_ACCOUNT] 2 , [ROLE_NAME] = stuff(( 3 SELECT ',' + ...
- 【转】内核中的内存申请:kmalloc、vmalloc、kzalloc、kcalloc、get_free_pages
转自:https://www.cnblogs.com/yfz0/p/5829443.html 在内核模块中申请分配内存需要使用内核中的专用API:kmalloc.vmalloc.kzalloc.kca ...
- PAT Advanced 1035 Password (20 分)
To prepare for PAT, the judge sometimes has to generate random passwords for the users. The problem ...
- PAT Basic 1041 考试座位号 (15 分)
每个 PAT 考生在参加考试时都会被分配两个座位号,一个是试机座位,一个是考试座位.正常情况下,考生在入场时先得到试机座位号码,入座进入试机状态后,系统会显示该考生的考试座位号码,考试时考生需要换到考 ...
- python 字符串 常用方法
name = 'ALLix9' print(name.casefold()) # 大写变成小写 name.lower() # 全变小写 '.isnumeric()) #判断是否是数字:正整数 prin ...
- 文件打包压缩——tar
tar——压缩数据/解压数据内容 命令语法: tar zcvf 生成压缩包路径/压缩包.tar.gz 压缩数据01,02,03.... 巧记: 压缩名称为tar.gz,可以理解为tar命令,g ...
- 理解厂商前缀 -webkit- / -moz- / -ms- / -o-
CSS3规范如果想要达到W3C的推荐标准状态还需要不断改进.浏览器则通常在W3C开发标准的过程中就会体现这些特性.这样,标准在最终敲定之前就能知道哪些地方还能进一步改进. 在包含某个特性的的初始阶段, ...
- 在 Postman 中报错:Self-signed SSL certificates are being blocked 的分析与解决
http://www.shuijingwanwq.com/2019/02/18/3171/