验证码类型:数字、字母、拖动

一.先从http协议底层

http协议是超文本传输协议,主要是用于浏览器和服务器之间交互数据。交互分为请求和响应部分

特点:简单快速、无连接、无状态

无连接和无状态:指的是多个请求之间是没有连接的,是没有关联的,是独立的。

http协议端口:80

https=http+ssl(安全传输协议)端口:443

请求:请求行、请求头、空一行、请求正文

有些接口必须有特点的请求头才可以请求成功

响应:响应行、响应头、空一行、响应正文

二、Cookie的作用就是为了解决http协议无连接、无状态而导致的业务关联很难以处理

1.什么是Cookie

本质:就是一段文本,客户端在”第一次“访问服务器时,创建身份标识,格式key=value放在set-Cookie字段里,发个客户端

当第二次去请求服务器时,那么就会带上cookie而且放在Cookie上

2.总结

a.cookie是在服务器产生的,保存在客户端

b.以key=vaule保存在一个文件内

c.cookie的名称和失效时间是有开发定义的

3.cookie的分类

会话cookie:保存在内存,浏览器关闭就清除—-比如session

持久cookie:保存在硬盘,失效时间到之后就会清除

4.如何查看:

fiddle

F12—-application -cookie

浏览器地址栏的感叹号

5.cookie不是缓存

三、cookie在测试当中的使用场景

1.接口关联的时候可以通过cookie传输token

2.记住用户登陆状态

3.在自动化测试里面作为万能码跳过所有的验证码,甚至不需要用户名和密码

步骤:第一步先获取cookie

第二步通过add_cookie()方法添加cookie

import time
import unittestfrom selenium import webdriver
import warningsclass Test(unittest.TestCase):def setUp(self) -> None:#忽略掉相关告警warnings.simplefilter('ignore', ResourceWarning)passdef test01_login(self):#driver设置为全局变量,运行完之后谷歌浏览器不会自动关闭global driver#打开谷歌浏览器driver = webdriver.Chrome()driver.get("http://192.168.0.141:8080/iwebshop/index.php?controller=systemadmin&action=index")time.sleep(3)获取所有的cookie信息并保存到cks上,返回的是list,这是登陆前的cookiecks = driver.get_cookies()for ck in cks:print(ck)time.sleep(3);#手动登陆一次#获取所有的cookie信息并保存到cks上,返回的是list,这是登陆后的cookiecks = driver.get_cookies()for ck in cks:print(ck)#登录前的cookie信息# {'domain': '192.168.0.141', 'expiry': 1642653336, 'httpOnly': False, 'name': 'iweb_Captcha', 'path': '/',#  'secure': False, 'value': 'fd8b964624ODEyMDA4MDIwMDNjZDhlZmc4NzBlNGFrPWdmYzAzYWRobG9vZA'}# {'domain': '192.168.0.141', 'expiry': 1642653336, 'httpOnly': False, 'name': 'iweb_safecode', 'path': '/',#  'secure': False,#  'value': 'fd8b964624ODEyMDA4MDIwMDZiNGU1YTBlMTFjN2IwMzxlNjBiZDA0MDswNTUzM2QwajVgN2VrNWcyPDM4MTBsZT9jMTU3Mg'}#登陆后的cookie信息# {'domain': '192.168.0.141', 'expiry': 1642653352, 'httpOnly': False, 'name': 'iweb_admin_name', 'path': '/',#  'secure': False, 'value': '76bb1f91a1MTA5NTQwMDgwNWY1P2Y2MjZkM2EwPGwxOD01M2E4ZDdnZG1obg'}# {'domain': '192.168.0.141', 'expiry': 1642653352, 'httpOnly': False, 'name': 'iweb_admin_role_name', 'path': '/',#  'secure': False, 'value': '76bb1f91a1MTA5NTQwMDgwNTI3ZWY1NDg1MjU1bDE1bz5jZGA9OT%2FutoXmuqbgrqTnk4bll54'}# {'domain': '192.168.0.141', 'expiry': 1642653353, 'httpOnly': False, 'name': 'iweb_admin_right', 'path': '/',#  'secure': False, 'value': '825c711358NDUwMTA1MDAwMDQzZzo2YmhmNDc7YTMwMjljNTY1NjlgZGtsa2l3c3VmdG91'}# {'domain': '192.168.0.141', 'expiry': 1642653352, 'httpOnly': False, 'name': 'iweb_admin_pwd', 'path': '/',#  'secure': False,#  'value': '76bb1f91a1MTA5NTQwMDgwNWQwYjlmNGY3YTExPmxhMThgYmE%2FOTNjMTBgZGI0OTE5YWE1P2dgYmw1PmUwNTRmMzRuMT47ZQ'}# {'domain': '192.168.0.141', 'expiry': 1642653353, 'httpOnly': False, 'name': 'iweb_safecode', 'path': '/',#  'secure': False,#  'value': '825c711358NDUwMTA1MDAwMDFiMW0xZT1lMjFrM2AwNzhjNjJhZTI1MzQ1MDAzMmM2YjJhPGVqNWQyPzA0MTBlYzhhOD02Ng'}# {'domain': '192.168.0.141', 'expiry': 1642653352, 'httpOnly': False, 'name': 'iweb_admin_id', 'path': '/',#  'secure': False, 'value': '76bb1f91a1MTA5NTQwMDgwNWNjZTU2YDAxNTI4bjBgOGowNTI7YTA3'}# {'domain': '192.168.0.141', 'expiry': 1642653351, 'httpOnly': False, 'name': 'iweb_Captcha', 'path': '/',#  'secure': False, 'value': 'f4c38b0ec2MDkwOTAwOTMwMDRjbDhhYWc4PDdgM2BiOWVmYjAzYWZrb2dnZA'}def tearDown(self) -> None:passif __name__=='__main__':unittest.main();
import time
import unittestfrom selenium import webdriver
import warningsclass Test(unittest.TestCase):def setUp(self) -> None:# 忽略警告信息warnings.simplefilter('ignore', ResourceWarning)passdef test01_login(self):#driver设置为全局变量,运行完之后谷歌浏览器不会自动关闭global driver#打开谷歌浏览器driver = webdriver.Chrome()driver.get("http://192.168.0.141:8080/iwebshop/index.php?controller=systemadmin&action=index")time.sleep(3)# 添加cookie信息driver.add_cookie({"name": "iweb_admin_name", "value": "76bb1f91a1MTA5NTQwMDgwNWY1P2Y2MjZkM2EwPGwxOD01M2E4ZDdnZG1obg"})driver.add_cookie({"name": "iweb_admin_role_name","value": "76bb1f91a1MTA5NTQwMDgwNTI3ZWY1NDg1MjU1bDE1bz5jZGA9OT%2FutoXmuqbgrqTnk4bll54"})driver.add_cookie({"name": "iweb_admin_right","value": "825c711358NDUwMTA1MDAwMDQzZzo2YmhmNDc7YTMwMjljNTY1NjlgZGtsa2l3c3VmdG91"})driver.add_cookie({"name": "iweb_admin_pwd","value": "76bb1f91a1MTA5NTQwMDgwNWQwYjlmNGY3YTExPmxhMThgYmE%2FOTNjMTBgZGI0OTE5YWE1P2dgYmw1PmUwNTRmMzRuMT47ZQ"})driver.add_cookie({"name": "iweb_safecode","value": "825c711358NDUwMTA1MDAwMDFiMW0xZT1lMjFrM2AwNzhjNjJhZTI1MzQ1MDAzMmM2YjJhPGVqNWQyPzA0MTBlYzhhOD02Ng"})driver.add_cookie({"name": "iweb_admin_id", "value": "76bb1f91a1MTA5NTQwMDgwNWNjZTU2YDAxNTI4bjBgOGowNTI7YTA3"})driver.add_cookie({"name": "iweb_Captcha", "value": "f4c38b0ec2MDkwOTAwOTMwMDRjbDhhYWc4PDdgM2BiOWVmYjAzYWZrb2dnZA"})# 直接加载登陆之后的页面driver.get("http://192.168.0.141:8080/iwebshop/index.php?controller=system&action=default")# 获取所有的cookie信息并保存到cks上,返回的是list,这是登陆前的cookie# cks = driver.get_cookies()# for ck in cks:#     print(ck)# # time.sleep(3);# #手动登陆一次#  #获取所有的cookie信息并保存到cks上,返回的是list,这是登陆后的cookie# cks = driver.get_cookies()# for ck in cks:#     print(ck)#登录前的cookie信息# {'domain': '192.168.0.141', 'expiry': 1642653336, 'httpOnly': False, 'name': 'iweb_Captcha', 'path': '/',#  'secure': False, 'value': 'fd8b964624ODEyMDA4MDIwMDNjZDhlZmc4NzBlNGFrPWdmYzAzYWRobG9vZA'}# {'domain': '192.168.0.141', 'expiry': 1642653336, 'httpOnly': False, 'name': 'iweb_safecode', 'path': '/',#  'secure': False,#  'value': 'fd8b964624ODEyMDA4MDIwMDZiNGU1YTBlMTFjN2IwMzxlNjBiZDA0MDswNTUzM2QwajVgN2VrNWcyPDM4MTBsZT9jMTU3Mg'}#登陆后的cookie信息# {'domain': '192.168.0.141', 'expiry': 1642653352, 'httpOnly': False, 'name': 'iweb_admin_name', 'path': '/',#  'secure': False, 'value': '76bb1f91a1MTA5NTQwMDgwNWY1P2Y2MjZkM2EwPGwxOD01M2E4ZDdnZG1obg'}# {'domain': '192.168.0.141', 'expiry': 1642653352, 'httpOnly': False, 'name': 'iweb_admin_role_name', 'path': '/',#  'secure': False, 'value': '76bb1f91a1MTA5NTQwMDgwNTI3ZWY1NDg1MjU1bDE1bz5jZGA9OT%2FutoXmuqbgrqTnk4bll54'}# {'domain': '192.168.0.141', 'expiry': 1642653353, 'httpOnly': False, 'name': 'iweb_admin_right', 'path': '/',#  'secure': False, 'value': '825c711358NDUwMTA1MDAwMDQzZzo2YmhmNDc7YTMwMjljNTY1NjlgZGtsa2l3c3VmdG91'}# {'domain': '192.168.0.141', 'expiry': 1642653352, 'httpOnly': False, 'name': 'iweb_admin_pwd', 'path': '/',#  'secure': False,#  'value': '76bb1f91a1MTA5NTQwMDgwNWQwYjlmNGY3YTExPmxhMThgYmE%2FOTNjMTBgZGI0OTE5YWE1P2dgYmw1PmUwNTRmMzRuMT47ZQ'}# {'domain': '192.168.0.141', 'expiry': 1642653353, 'httpOnly': False, 'name': 'iweb_safecode', 'path': '/',#  'secure': False,#  'value': '825c711358NDUwMTA1MDAwMDFiMW0xZT1lMjFrM2AwNzhjNjJhZTI1MzQ1MDAzMmM2YjJhPGVqNWQyPzA0MTBlYzhhOD02Ng'}# {'domain': '192.168.0.141', 'expiry': 1642653352, 'httpOnly': False, 'name': 'iweb_admin_id', 'path': '/',#  'secure': False, 'value': '76bb1f91a1MTA5NTQwMDgwNWNjZTU2YDAxNTI4bjBgOGowNTI7YTA3'}# {'domain': '192.168.0.141', 'expiry': 1642653351, 'httpOnly': False, 'name': 'iweb_Captcha', 'path': '/',#  'secure': False, 'value': 'f4c38b0ec2MDkwOTAwOTMwMDRjbDhhYWc4PDdgM2BiOWVmYjAzYWZrb2dnZA'}def tearDown(self) -> None:passif __name__=='__main__':unittest.main();

Selenium操作cookie绕过验证码登陆实战相关推荐

  1. python通过cookie绕过验证码_Python Selenium Cookie 绕过验证码实现登录示例代码

    之前介绍过通过cookie 绕过验证码实现登录的方法.这里并不多余,会增加分析和另外一种方法实现登录. 1.思路介绍 1.1.直接看代码,内有详细注释说明 # FileName : Wm_Cookie ...

  2. python绕过验证码_Python:使用Cookie绕过验证码

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

  3. 通过cookie绕过验证码登录(绕过验证码)

    通过cookie绕过验证码登录(绕过验证码) #!/user/bin/env python3 # -*- coding: utf-8 -*- from selenium import webdrive ...

  4. python绕过验证码登录_python接口自动化(十三)--cookie绕过验证码登录(详解)...

    简介 有些登录的接口会有验证码:短信验证码,图形验证码等,这种登录的话验证码参数可以从后台获取的(或者查数据库最直接).获取不到也没关系,可以通过添加cookie的方式绕过验证码.(注意:并不是所有的 ...

  5. python接口自动化(十三)--cookie绕过验证码登录(详解)

    简介 有些登录的接口会有验证码:短信验证码,图形验证码等,这种登录的话验证码参数可以从后台获取的(或者查数据库最直接).获取不到也没关系,可以通过添加cookie的方式绕过验证码.(注意:并不是所有的 ...

  6. selenium ie 操作cookie_Python3中selenium 怎么操作Cookie?

    webdriver提供了操作Cookie的相关方法,可以读取,添加和删除cookie信息. webdriver操作cookie()的方法: get_cookie(): 获得所有cookie信息. ge ...

  7. 越过验证码 selenium模拟登录B站项目实战(附源码)

    实战:selenium模拟登录B站 登录验证码处理 selenium 中的难点验证码破解因为确实没有很好的方式,一般都需要通过第三方平台实现破解,本案例中使用的是超级鹰平台(收费,大概1元30次,测试 ...

  8. java使用Selenium模拟登陆58(验证码登陆密码登陆)若快平台识别文字点击验证码

    文章目录 写在前面 配置环境 Selenium入门 使用Selenium登陆58 若快平台识别文字点击验证码 附: By对象中的 xpath & cssSelector获取方式** 不打开浏览 ...

  9. python tesseract selenium自动识别验证码登陆

    文章目录 前言 一.下载安装tesserocr 1. 环境:win7 x64位 +python3.6 2. 下载链接 3.安装注意事项 二.安装pytesseract和Pillow包 1.使用pych ...

最新文章

  1. 英伟达推出GAN“超级缝合体”,输入文字草图语义图都能生成逼真照片
  2. ubuntu中安装kDevelop
  3. python中缩进规则的例外
  4. bash-shell详解
  5. Dapper.Common基于Dapper的开源LINQ超轻量扩展
  6. python web项目导出zip文件_Python压缩和解压缩zip文件
  7. [必看]首先要求做到的事情![sumtec]
  8. win11任务栏怎么更换颜色 win11任务栏更换颜色的设置方法
  9. java开发steam平台_stma(steam平台)
  10. drawRGB在N7370上的问题
  11. 基于SSM的毕业生就业管理系统设计与实现 Java mysql
  12. ssl免费证书获取,并在nginx服务器上安装ssl证书,以及docker安装nginx需注意的细节。
  13. [转载]关于太阳(卫星)天顶角,太阳高度角,太阳方位角的整理_akala啦_新浪博客...
  14. 吴恩达《机器学习》第四章:多元线性回归
  15. 『Photo Shop实用技巧』之 去除红眼
  16. OUC_SE_Group014_Blog4
  17. 阿里云网盘开始内测资格申请!
  18. 所见即所得的html制作,做一个所见即所得的CSS效果
  19. 远程 桌面 上, root 用户切换到普通用户, sudo su cheng 到普通用户。这样就可以进行pip了
  20. 我国土壤分布现状及应对措施

热门文章

  1. 25.3. Continuous Archiving and Point-in-Time Recovery (PITR)
  2. 我们到底在恐惧什么?
  3. 基于Arduino UNO的光驱写字机制作
  4. 扭蛋机html源码,微信小程序wxss制作扭蛋机
  5. 同城小程序需要的服务器配置,微同城小程序-设置教程-一站云
  6. next_day函数用法
  7. 云音乐小程序开发知识小记(上)
  8. 小程序中身份证号码认证简单的判断方法
  9. c语言第六章数组题库及详解答案,C语言第六章数组习题答案.doc
  10. 神助攻or猪队友:靠AI“僚机”脱单到底有多难?