Selenium自动化测试:通过cookie绕过验证码的操作

您所在的位置:网站首页 burp验证码识别接口 Selenium自动化测试:通过cookie绕过验证码的操作

Selenium自动化测试:通过cookie绕过验证码的操作

2023-07-03 01:35| 来源: 网络整理| 查看: 265

验证码的处理

  对于web应用,很多地方比如登录、发帖都需要输入验证码,类型也多种多样;登录/核心操作过程中,系统会产生随机的验证码图片,进行验证才能进行后续操作

解决验证码的方法如下:

1、开发做个万能验证码(推荐) 2、测试环境关闭验证码功能(推荐)(开发配置) 3、图片识别技术(不稳定) 4、调用开发生成验证码接口(和开发配合) 5、第三方验证码平台(打码兔) 6、cookie绕过验证码(推荐)

cookie处理

 假如我们需要验证浏览器中是否存在cookie,因为基于真实的cookie是无法通过白盒和集成测试完成的,webdriver可以读取、添加和删除cookie信息

webdriver操作cookie的方法如下:

get_cookies()  获取所有cookie信息 get_cookie(name)  返回特定name有cookie信息 add_cookie(cookie_dict)  添加cookie,必须有name和value值 delete_cookie(name)  删除特定部分的cookie信息 delete_all_cookies()  删除所有cookie信息

备注:add_cookie()里面放置字典参数,cookie字典一般需要包含name、value、domain、path等字段,如果遇到cookie有Expirse字段,要去掉

举例实战:利用cookie完成网站的免密码应用

第一步的代码思路:只是为了把登录后的cookie信息写入到excel中为后面的免密码登录做准备工作

1、打开网站的登录页面 2、等待60s,这个时间手动去输入用户名、密码、验证码登录 3、获取登录之后cookie 4、把登录之后cookie写入到excel中

代码如下:

前置条件:导入xlwt库

import os import time import xlwt from selenium import webdriver current_path = os.path.dirname(os.path.abspath(__file__)) # 当前路径 driver_path = os.path.join(current_path,'../webdriver/chromedriver.exe') # driver路径 driver = webdriver.Chrome(executable_path=driver_path) # Firefox,Ie等 driver.get('http://47.107.187.54/zentao/www/index.php?m=user&f=login') # 打开禅道地址 workbook = xlwt.Workbook(encoding='utf-8') # 设置workbook对象 sheet = workbook.add_sheet('Sheet01') # 新增sheet页名称 sheet.write(0,0,'number') # 通过行列坐标写入值 sheet.write(0,1,'name') sheet.write(0,2,'value') sheet.write(0,3,'path') sheet.write(0,4,'domain') time.sleep(30) # 手动输入 用户名、密码、验证码时间 cookies = driver.get_cookies() # 获取登录后的cookie信息 for i in range(1,len(cookies)+1): # 遍历cookie的值,并通过行列坐标写入值 sheet.write(i,0,i) sheet.write(i, 1,cookies[i-1]['name']) sheet.write(i, 2,cookies[i-1]['value']) sheet.write(i, 3,cookies[i-1]['path']) sheet.write(i, 4,cookies[i-1]['domain']) workbook.save('test.xls') # 保存并设置excel的名称

第二步的代码思路:

1、打开网站的登录页面 2、用add_cookie()方式把excel中的cookie信息添加到cookie中 3、刷新网站,即可完成自动登录操作

代码如下:

前置条件:导入xlrd库

import os import time import xlrd from selenium import webdriver current_path = os.path.dirname(os.path.abspath(__file__)) # 当前路径 driver_path = os.path.join(current_path,'../webdriver/chromedriver.exe') # driver路径 driver = webdriver.Chrome(executable_path=driver_path) # Firefox,Ie等 driver.get('http://47.107.187.54/zentao/www/index.php?m=user&f=login') # 打开禅道地址 workbook = xlrd.open_workbook('test.xls') # 打开指定的excel文件 sheet = workbook.sheet_by_name('Sheet01') # 找到指定的sheet页 # 遍历sheet页中有效的行,在把excel中cookie信息添加到cookie中,实现免登录 for i in range(1,sheet.nrows): driver.add_cookie( {'name':sheet.cell_value(i,1),'value':sheet.cell_value(i,2), 'path':sheet.cell_value(i,3),'domain':sheet.cell_value(i,4)} ) time.sleep(3) driver.refresh() # 刷新

最后: 为了回馈铁杆粉丝们,我给大家整理了完整的软件测试视频学习教程,朋友们如果需要可以自行免费领取 【保证100%免费】

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3