Selenium自动化测试:通过cookie绕过验证码的操作_自动化测试登录界面验证码忽略

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

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()  # 刷新

img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化的资料的朋友,可以戳这里获取

只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**

需要这份系统化的资料的朋友,可以戳这里获取

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值