selemiun 自动化测试登录验证码处理
https://www.cnblogs.com/sandysun/p/7838113.html
插件安装:
(1)firebug
(2)selenim ide
(3)xpath finder
(1)Python 3.7.0
(下载火狐驱动geckodriver.exe2.32,保存在Python\py3安装路径中)
(2)下载selenium3.14.1(file-setting-project:code-projectinterpreder)
jdk
python3
firebox
tesseract-OCR
(1).tesseract-OCR(识别图片插件),如果没有这个插件,无法识别图片。
(2).在Pycharm中下载Pillow图片包。
import time
import pytesseract
from PIL import Image, ImageEnhance
driver = webdriver.Firefox()
driver.maximize_window()
driver.get("https://cas.gzccc.edu.cn/lyuapServer/login")
driver.save_screenshot("D://Python/picture/1.png")
verification = driver.find_element_by_xpath("/html/body/div[2]/div/div[2]/div/form/div/div[3]/div[3]/img")
passa=driver.find_element_by_xpath("//*[@id=\"password\"]")
shuru = driver.find_element_by_xpath("//*[@id=\"j_captcha_response\"]")
denglu = driver.find_element_by_xpath("/html/body/div[2]/div/div[2]/div/form/div/div[4]/input[3]")
location=verification.location
size=verification.size
ran = Image.open("D://Python/picture/1.png")#打开图片
box = (1023,410,1110,450)
ran.crop(box).save("D://Python/picture/2.png")
# 4、获取验证码图片,读取验证码
imageCode = Image.open("D://Python/picture/2.png")
# imageCode.load()
sharp_img = ImageEnhance.Contrast(imageCode).enhance(2.0)#图像增强,二值化
sharp_img.save("D://Python/picture/3.png")
sharp_img.load() # 对比度增强
time.sleep(2)
#print(sharp_img)
code = pytesseract.image_to_string(sharp_img).strip()#识别图片
# 5、收到验证码,进行输入验证
user.send_keys("??")
passa.send_keys("??")
shuru.send_keys(code)
denglu.click()
time.sleep(3)
driver.quit()
selemiun 自动化测试登录验证码处理的更多相关文章
- python登录验证码生成及自动化测试规避
在用django写论坛的时候,需要有登录及注册功能. 故就登录界面后端需要生成随机验证码并传值给前端的代码进行编写如下. 验证码生成png需要调用到python的图形库 生成注册码img import ...
- Selenium2学习-018-WebUI自动化实战实例-016-自动化脚本编写过程中的登录验证码问题
日常的 Web 网站开发的过程中,为提升登录安全或防止用户通过脚本进行黄牛操作(宇宙最贵铁皮天朝魔都的机动车牌照竞拍中),很多网站在登录的时候,添加了验证码验证,而且验证码的实现越来越复杂,对其进行脚 ...
- 通过Cookie跳过登录验证码【限cookie不失效有用】
验证码,相信每个写web自动化测试的同学来说,都是个头疼的事,怎么办呢? 方法还是有的,先说今天这种方式,通过cookie绕过登录验证码 思路: 需要你通过抓包工具抓到你登录的cookie 接下来开始 ...
- Cookie跳转登录验证码
对于web应用来说,大部分的系统在用户登录时都要求用户输入验证码,验证码的类型的很多,有字母数字的,有汉字的,甚至还要用户输入一条算术题的答案的, 对于系统来说使用验证码可以有效果的防止采用机器猜测方 ...
- Java实现登录验证码
登录验证码 Servlet /* 从请求中获取数据,获取验证码的session的值转为String类型, 销毁,防止返回后验证码不刷新,重新验证成功 判断验证码是否相同(忽略大 ...
- Spring Boot + Spring Cloud 实现权限管理系统 后端篇(十七):登录验证码实现(Captcha)
登录验证码 登录验证是一般系统都会有的功能,验证的方式也多种多样,比如输入式验证码,拖动式验证条,拖动式验证拼图等等. 我们这里先实现常规的输入验证码的方式,右边显示验证码图片,点击可刷新,左边输入验 ...
- 登录验证码实现(Captcha)
登录验证码 登录验证是一般系统都会有的功能,验证的方式也多种多样,比如输入式验证码,拖动式验证条,拖动式验证拼图等等. 我们这里先实现常规的输入验证码的方式,右边显示验证码图片,点击可刷新,左边输入验 ...
- Python - WebDriver 识别登录验证码
Python - WebDriver 识别登录验证码 没什么可说的直接上代码! #-*-coding:utf-8-*- # Time:2017/9/29 7:16 # Author:YangYangJ ...
- 基于ajax 的 几个例子 session ,ajax 实现登录,验证码 ,实现ajax表单展示
headers: {"X-CSRFToken": $("[name='csrfmiddlewaretoken']").val()},data:$(". ...
随机推荐
- Jquery中 .empty()和.append()
jQuery empty() 方法:移除所选<div> 元素的内容: .empty()实例 jQuery append() 方法:在所选<> 元素结尾插入内容: .append ...
- hyperledger fabric 架设命令
单节点架设 Order 网络: cd ~/go/src/github.com/hyperledger/fabric/examples/e2e_cli/ rm -rf channel-artifacts ...
- 读书笔记--《编写高质量代码:改善Python程序的91个建议》
第一章 引论 建议写Pythonic式的代码,我理解为充分利用pythonAPI,用最简洁方式写出代码 1.两个变量交换: a, b = b, a 2.翻转list: a = [1, 2, 3, ...
- mysql查询表是否存在
查询表是否存在 SHOW TABLES LIKE "表名" tp5查询表是否存在 Db::query('SHOW TABLES LIKE "表名"');
- cron表达式总结
cron表达式用于配置cronTrigger的实例,在定时任务中会用到cron表达式.cron表达式实际上是由七个子表达式组成.这些表达式之间用空格分隔. 可通过工具校验:http://cron.qq ...
- 实验八 <FBG> 基于原型的团队项目需求调研与分析
<FBG>团队项目原型设计:http://www.cnblogs.com/ymm3/p/9012534.html GitHub的链接地址:https://github.com/FBGfbg ...
- 【设计模式】抽象工厂模式(Abstract Factory Pattern)
[前言] 上次针对自己的理解书写一篇工厂模式的文章,后面对于工厂模式进行更加多的学习,于是了解到了抽象工厂模式.其实网上大多数人们都是抽象工厂模式是工厂模式的升级版本,虽然我并不知道所说的升级是什么意 ...
- Spring Cloud 升级最新 Finchley 版本,踩了所有的坑!
Spring Boot 2.x 已经发布了很久,现在 Spring Cloud 也发布了 基于 Spring Boot 2.x 的 Finchley 版本,现在一起为项目做一次整体框架升级. 升级前 ...
- diango admin 添加成员报错
[报错内容]: IntegrityError at /admin/users/userprofile/add/ (1452, 'Cannot add or update a child row: a ...
- PAT 1136 A Delayed Palindrome
1136 A Delayed Palindrome (20 分) Consider a positive integer N written in standard notation with k ...