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 ...
随机推荐
- Redis配置主从时报错“Could not connect to Redis at 192.168.0.50:6379: Connection refused not connected>”
配置Redis主从时,修改完从节点配置文件,然后报错 [root@Rich七哥-0-50 redis]# /opt/redis/redis-cli -h 192.168.0.50 Could not ...
- [转帖] Linux 下面 perl 命令的简介
https://www.jb51.net/article/123326.htm 感觉挺好的 改天需要仔细学习一下. 前言 本文主要给大家介绍了关于Perl单行命令的相关内容,分享出来供大家参考学习,下 ...
- cannot convert from pointer to base class 'QObject' to pointer to derived class 'subClass' via virtual base 'baseClass'
QT 编译不过的另一个问题: 1. 新建一个console工程 QT -= gui CONFIG += c++ console CONFIG -= app_bundle # The following ...
- php 图像处理 抠图,生成背景透明png 图片
*自定义一个图片等比缩放函数 *@param string $picname 被缩放图片名 *@param string $path 被缩放图片路径 *@param int $maxWidth 图片被 ...
- 重写移动端滚动条[iScroll.js核心代码]
最近写组件库的时后,发现这个滚动条是真的丑啊,决定重新撸一个滚动条: 首先咱们回顾一下移动端浏览器滚动条特性: 滚动条在开始滚动时渐显,滚动结束后渐隐 滚动条不占内容区宽度,悬浮固定 滚动条高度(深灰 ...
- luogu P4654 [CEOI2017]Mousetrap
传送门 这里把终点设为根方便后续处理,那么目标就是要让老鼠走到根 首先考虑老鼠动不了的情况,这种情况下可以把从这个点到终点路径上的分支堵住,然后再疏通路径上的走过的边,可以发现这是这种情况下最优的决策 ...
- 我所不知的JS
几天前在阅读 MDN 文档时我发现了一些我从来不知道的 JS 特性和 API. 下面是一份简短的清单, 无论有用不有用——学习 JS 的道路似乎是没有尽头的. 标签语句 在 JS 中,你可以对 for ...
- java.lang.IllegalArgumentException: id to load is required for loading
java.lang.IllegalArgumentException: id to load is required for loading at org.hibernate.event.LoadEv ...
- 启动angular项目,端口被占用
启动项目,npm start,报如下错误: 解决:1.win+R,输入CMD,启动命令行窗口. 2.输入netstat -ano或者netstat -ano|findstr 8080,查看8080端口 ...
- MVVM框架简单实现
众所周知当下是MVVM盛行的时代,从早期的Angular到现在的React和Vue,再从最初的三分天下到现在的两虎相争. 无疑不给我们的开发带来了一种前所未有的新体验,告别了操作DOM的思维,换上了数 ...