qtp识别验证码
花了两天时间才完整的完成识别验证码的登录操作,在网上看到很多关于验证码识别的方法,但是我用的qtp版本比较高级,所以还是要自己花心思研究。po上我的识别验证码的详细历程:
一、读取浏览器中的图片验证码
1.打开浏览器登录界面
2.启动qtp,不勾选web
3.录制验证码。开始录制:在录制的小条上选择insert ->text area output value. 截图验证码图片的框。
然后选择modify,output types设置为environment,name 可以改写为“getchar”。停止录制
得到的代码为:
Window("Windows Internet Explorer").WinObject("Internet Explorer_Server").Output CheckPoint("Internet Explorer_Server")
4.在录制完后的代码上加一行:
msgbox environment.Value ("getchar")
5.在qtp上点击run
这样它就会弹出验证码的消息框
二、识别word中的数字。在qtp中回放录制的验证码,将验证码输出来:
在word中选中一段图片,内容为数字,获取到图片里的数字。然后将获取到数字在word中输出来:
1,打开qtp,不选择web。录制时利用text area output value在word中选中一段图片,内容为数字,获取到图片里的数字,保存为环境变量getchar3.
2.新建一个test,调用刚录制的那个action 。然后再录制在word中输入一段文字。
3.将文字改为环境变量getchar3的值,这样在word中就会输出验证码的值了。第二个test的代码如下:
RunAction "Copy of Action1", oneIteration
msgbox environment.Value("getchar3") #将环境变量的值用messagebox弹出来
myword=environment.Value("getchar3") #将环境变量的值复制给一个变量
Window("Microsoft Word").WinObject("Microsoft Word 文档").Type myword #这句是录制得到的。本来是Type "1234",将"1234"改为type。
三、完整的登录OA系统。以下是action name为oa_login_code的代码内容。先录制不带web的识别验证码的checkcode action,再勾选web addin 录制登录OA系统的action。录制时OA的登录界面是打开的状态。
在checkcode action中可以在file——setting--environment--internal value,看到getchar。但在调用它的action中不能看到这个环境变量值。直接使用这个环境变量即可。
RunAction "Copy of checkcode", oneIteration MyWebElement=environment.Value ("getchar") Browser("流程管道,知识活水").Page("流程管道,知识活水").WebEdit("authcode").Set MyWebElement Browser("流程管道,知识活水").Page("流程管道,知识活水").WebEdit("j_username").Set "078057"
Browser("流程管道,知识活水").Page("流程管道,知识活水").WebEdit("j password")
Browser("流程管道,知识活水").Page("流程管道,知识活水").WebEdit("j_password").SetSecure "541303024777c70d"
Browser("流程管道,知识活水").Page("流程管道,知识活水").Image("Submit").Click 2,12
其中checkcode action的代码:
Window("Windows Internet Explorer").WinObject("Internet Explorer_Server").Output CheckPoint("Internet Explorer_Server")
运行完整action后的结果:

通过识别验证码的程序学习到:
1.屏蔽多行,单独验证某行看是否通过。然后再执行多步
2.qtp的验证码识别是通过抓取图片中的文本进行识别。现在只能识别英文。如果录制时选择中文(在tools-options--gui testing-text recognition中设置),也识别不到。
qtp11.5 OCR设置:在tools-options--gui testing-text recognition中设置。我在win7上装的只有OCR这一种方式。
3.录制时,有时候录制不生成代码,有时候回放不成功,要重新打开IE浏览器。
qtp识别验证码的更多相关文章
- 【转载】loadrunner使用system()函数调用Tesseract-OCR识别验证码遇到的问题
俗话说前人栽树,后人乘凉,此话一点不假,结合云层的一遍文章:http://bbs.51testing.com/thread-533920-1-1.html,知道还有一个Tesseract-OCR可以用 ...
- C#识别验证码技术-Tesseract
相信大家在开发一些程序会有识别图片上文字(即所谓的OCR)的需求,比如识别车牌.识别图片格式的商品价格.识别图片格式的邮箱地址等等,当然需求最多的还是识别验证码.如果要完成这些OCR的工作,需要你掌握 ...
- java识别验证码
所需资源下载链接(资源免费,重在分享) Tesseract:http://download.csdn.net/detail/chenyangqi/9190667 jai_imageio-1.1-alp ...
- loadrunner使用system()函数调用Tesseract-OCR识别验证码遇到的问题
俗话说前人栽树,后人乘凉,此话一点不假,结合云层的一遍文章:http://bbs.51testing.com/thread-533920-1-1.html,知道还有一个Tesseract-OCR可以用 ...
- python识别验证码——一般的数字加字母验证码识别
1.验证码的识别是有针对性的,不同的系统.应用的验证码区别有大有小,只要处理好图片,利用好pytesseract,一般的验证码都可以识别 2.我在识别验证码的路上走了很多弯路,重点应该放在怎么把图片处 ...
- python识别验证码——PIL,pytesser,pytesseract的安装
1.使用Python识别验证码需要安装Python的图像处理模块(PIL.pytesser.pytesseract) (安装过程需要pip,在我的Python中已经安装pip了,pip的安装就不在赘述 ...
- Python爬虫入门教程 60-100 python识别验证码,阿里、腾讯、百度、聚合数据等大公司都这么干
常见验证码 之前的博客中已经解决了一些常见验证码的问题,但是验证码是层出不穷的,目前解决验证码除了通过常规手段解决以外,还可以通过人工智能领域的深度学习去解决 深度学习?! 无疑对爬虫coder提高了 ...
- Java使用J4L识别验证码
1.首先要下载j4l的相应文件和jar 下载地址:http://www.java4less.com/ocrtools/ocrtools.php?info=download 2.下载完成之后解压,文件目 ...
- python 基于机器学习识别验证码
1.背景 验证码自动识别在模拟登陆上使用的较为广泛,一直有耳闻好多人在使用机器学习来识别验证码,最近因为刚好接触这方面的知识,所以特定研究了一番.发现网上已有很多基于machine learni ...
随机推荐
- urllib库:分析Robots协议
1from urllib.robotparser import RobotFileParser 2import ssl 3from urllib.request import urlopen 4ssl ...
- Who will be punished
Who will be punished Problem Description This time,suddenly,teacher Li wants to find out who have mi ...
- linux信号调用机制
在Linux中,信号是进程间通讯的一种方式,它采用的是异步机制.当信号发送到某个进程中时,操作系统会中断该进程的正常流程,并进入相应的信号处理函数执行操作,完成后再回到中断的地方继续执行. 需要说明的 ...
- Mysql 表空间和 数据页空洞
一.表空间1.表空间: innodb 引擎存储的最高层: 存放所有的数据2.独立表空间:Mysql 版本 5.6 后默认开启的单表单空间(1)Innodb 默认存储引擎页的大小为 16K :默认表空间 ...
- 03: saltstack和ansible的区别和原理
1.1 SaltStack.Ansible.Puppet比较 1.SaltStack 1. saltStack由Python编写,为server-client模式的系统,自己本身支持多master. ...
- Java编程思想读书笔记 第一章 对象导论
抽象过程 纯粹的面向对象程序设计方式: 万物皆为对象: 对象可以存储数据,还可以在其自身执行操作 程序是对象的集合: 通过发送消息告诉彼此要做的 每个对象都有自己的由其它对象构成的存储:可以在程序中构 ...
- python初始装饰器
python装饰器: 一,函数名的运用. 函数名是一个变量,但他是一个特殊的变量与括号配合可以执⾏行行函数的变量 1.函数名的内存地址 def func(): print("呵呵" ...
- qt QAbstractItemModel一些方法介绍
一. virtual bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::Edit ...
- HBASE学习笔记(四)
这两天把要前几天的知识点回顾一下,接下来我会用自己对知识点的理解来写一些东西 一.知识点回顾 1.hbase集群启动:$>start-hbase.sh ===>hbase-daemon.s ...
- CentOS 设置 yum源
什么是 yum Yum(全称 Yellow Dog Updater)是一个在 Fedora 和 RedHat 以及 CentOS 中的 Shell 前端软件包管理器.基于 RPM 包管理,能够从指定的 ...