如何使用cookie跳过验证码登录

_herbert

共 1577字,需浏览 4分钟

 ·

2021-04-18 20:01

应用背景

在做UI自动化测试时,我们常常遇到需要各种输入验证码,解决验证码的方式有以下几种:

  1. 利用pil的图片处理image和pytesseract的文字识别

  2. 开发设置万能验证码

  3. 测试时研发去掉验证码

  4.  利用cookie跳过验证码登录

 今天给大家分享如何利用cookie来跳过验证码登录,代码如下:

#coding:utf-8  中文编码 from selenium import webdriver    导入驱动模块import time        导入时间休眠模块                    from http import cookiejar    导入cookie模块,python3.0以上用cookiejardriver = webdriver.Chrome()url ('系统的登录地址')driver.get(url)  驱动访问浏览器urldriver.maximize_window()  窗口最大化time.sleep(3)  等待3sdriver.add_cookie({"name": "vue_admin_template_token", "value": "xx"})driver.add_cookie({"name": "sidebarStatus", "value": "0"})time.sleep(2)userInfo = '{"name":"李"}'topNavVal ='1'userPower ='[{"xx"}]'newRouter ='[{"xx"}]'print('window.localStorage.setItem("userInfo",JSON.Stringify('+userInfo+'));')driver.execute_script('window.localStorage.setItem("userInfo",JSON.stringify('+userInfo+'));'                      'window.localStorage.setItem("topNavVal",JSON.stringify('+topNavVal+'));'                      'window.localStorage.setItem("userPower",JSON.stringify('+userPower+'));'                      'window.localStorage.setItem("newRouter",JSON.stringify('+newRouter+'));')driver.get(url)

#coding:utf-8 代码中有中文需要编码,不然编译会报错:

File "E:/Python-3.7.10/denglu.py", line 18SyntaxError: Non-UTF-8 code starting with '\xe5' in file E:/Python-3.7.10/denglu.py on line 19, but no encoding declared

driver.add_cookie  添加浏览器cookie,浏览器缓存的cookie位置:

75a3fb028f667ba1120316e8d164b77b.webp

      我登录的系统前端缓存在浏览器的cookie数据不完整,没有用户相关信息,因此我跳过验证码登录成功后,没有功能菜单,每个公司的前端缓存方式不同,要根据个人公司情况稍作代码调整

       由于还有部分参数信息缓存在浏览器的Local Storage中,需要拼接字符串,代码如上

       这样利用cookie就可快速跳过验证码登录


浏览 55
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报