供求网站建设,网站代理工具,找个产品做区域代理,凡科网络科技有限公司验证码的处理 对于web应用#xff0c;很多地方比如登录、发帖都需要输入验证码#xff0c;类型也多种多样#xff1b;登录/核心操作过程中#xff0c;系统会产生随机的验证码图片#xff0c;进行验证才能进行后续操作
解决验证码的方法如下#xff1a;
1、开发做个万能…
验证码的处理 对于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 webdrivercurrent_path os.path.dirname(os.path.abspath(__file__)) # 当前路径
driver_path os.path.join(current_path,../webdriver/chromedriver.exe) # driver路径
driver webdriver.Chrome(executable_pathdriver_path) # Firefox,Ie等driver.get(http://47.107.187.54/zentao/www/index.php?muserflogin) # 打开禅道地址workbook xlwt.Workbook(encodingutf-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 webdrivercurrent_path os.path.dirname(os.path.abspath(__file__)) # 当前路径
driver_path os.path.join(current_path,../webdriver/chromedriver.exe) # driver路径
driver webdriver.Chrome(executable_pathdriver_path) # Firefox,Ie等driver.get(http://47.107.187.54/zentao/www/index.php?muserflogin) # 打开禅道地址
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() # 刷新
今天的分享就到此结束了大家还有什么不懂的可以评论区下留言哈如果我的文章对你有所帮助的话可以点赞三联支持一下