在实际测试中会经常见到登录操作需要验证码验证登录

常见验证有以下几种:

  1. 验证码登录
  2. 图片识别  

  3. 图片滑块识别验证

 

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登录的更多相关文章

  1. selenium cookie 登录

    前言 爬虫方向的小伙伴们都知道网页爬虫经常遇到的问题就是登录账户,有些简单的网站我们可以简单的send key来输入账户密码就可以登录,但是有很多网站需要验证码之类的就不太好用了,这时候就体现到了co ...

  2. python selenium cookie 登录

    概要: 1.正常登录,使用selenium获取cookie: 2.保存cookie: 3.使用cookie登录. 4.python--2.7,selenium--3.4.1 步骤1 正常登录,使用se ...

  3. python3爬虫 - 利用浏览器cookie登录

    http://blog.csdn.net/pipisorry/article/details/47980653 爬虫爬网站不免遇到需要登录的问题. 登录的时候可能还会碰到需要填验证码的问题, 有的验证 ...

  4. python3爬虫 - cookie登录实战

    http://blog.csdn.net/pipisorry/article/details/47948065 实战1:使用cookie登录哈工大ACM网站 获取网站登录地址 http://acm.h ...

  5. python3+selenium入门13-操作cookie

    可以把cookie理解为自己账户的身份证.因为http协议是无状态的,上一个请求和下一个请求没有关系.但是有时需要有关联.比如登录之后,才能进行操作这样的设置.这个就是cookie在起作用.登录成功时 ...

  6. JMeter学习-018-JMeter 配置元件之-HTTP信息头管理器-实现 Cookie 登录

    之前写过一篇通过[HTTP Cookie管理器]实现登录态操作的文章,使用时需要配置每个键值对(如下图所示),相对来讲配置比较繁琐.其实,我们也可通过在[HTTP信息头管理器]添加 Cookie 信息 ...

  7. JMeter学习-012-JMeter 配置元件之-HTTP Cookie管理器-实现 Cookie 登录

    前文我们讲过了若何获取登录后的 Cookie 信息,不知如何获取登录 Cookie 的朋友,敬请参阅我之前写的博文:Fiddler-005-获取 Cookie 信息.参阅上篇文章,获取到 Cookie ...

  8. Asp.Net Core 2.0 项目实战(10) 基于cookie登录授权认证并实现前台会员、后台管理员同时登录

    1.登录的实现 登录功能实现起来有哪些常用的方式,大家首先想到的肯定是cookie或session或cookie+session,当然还有其他模式,今天主要探讨一下在Asp.net core 2.0下 ...

  9. net core体系-web应用程序-4asp.net core2.0 项目实战(1)-12基于cookie登录授权认证并实现前台会员、后台管理员同时登录

    1.登录的实现 登录功能实现起来有哪些常用的方式,大家首先想到的肯定是cookie或session或cookie+session,当然还有其他模式,今天主要探讨一下在Asp.net core 2.0下 ...

随机推荐

  1. vue编写轮播图组件

    <template>  <div id="slider">    <div class="window" @mouseover=& ...

  2. BloomFilter&python支持

    BloomFilter&python支持 BloomFilter 布隆过滤器是一种概率空间高效的数据结构.它与hashmap非常相似,用于检索一个元素是否在一个集合中.它在检索元素是否存在时, ...

  3. 关于代码手写UI,xib和StoryBoard

    代码手写UI 这种方法经常被学院派的极客或者依赖多人合作的大型项目大规模使用.Geek们喜欢用代码构建UI,是因为代码是键盘敲出来的,这样可以做到不开IB,手不离开键盘就完成工作,可以专注于编码环境, ...

  4. GROUP BY关键字优化

    1.group by实质是先排序后进行分组,遵照索引建的最佳左前缀 2.当无法使用索引列,增大max_length_for_sort_data参数的设置+增大sort_buffer_size参数的设置 ...

  5. R语言multiplot函数绘制多张图像

    必备数据包“Rmisc” 先准备好需要绘入的图像,以比如p1.p2表示, multiplot(p1, p2) 如果插入图像多,p1.p2.p3.p4,则需要规定图像排列顺序. multiplot(p1 ...

  6. newgrp - 登录到新的用户组中

    总览 (SYNOPSIS) newgrp [ group ] 描述 (DESCRIPTION) Newgrp 改变 调用者 的 用户组标识, 类似于 login(1). 调用者 仍旧 登录 在 系统 ...

  7. vscode 黑屏及类名报错解决方案

    1.安装vscode之后打开黑屏,解决方案如下图,右键--属性--兼容性--勾选上 2.vscode 类名总报错 是ES2017的语法修饰器引起vscode警告. 解除的方法如果你使用的typescr ...

  8. 10年前文章_fedora10root登录

    fedora10系统root用户登录以及普通用户使用sudo命令1.问题:fedora10默认不能够直接用root用户登录解决方法:我们可以先以普通用户登录$su#vi /etc/pam.d/gdm删 ...

  9. centos 安装代理服务 proxy server squild

    以下内容复制自https://blog.csdn.net/qingfengxulai/article/details/80853870 放置此处便于检索 1 安装 sudo yum install s ...

  10. QueryDSL通用查询框架学习目录

    转载自恒宇的博客 https://www.jianshu.com/p/99a5ec5c3bd5