51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 11899|回复: 46
打印 上一主题 下一主题

[原创] 得出验证码的方法

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2006-9-30 10:40:13 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
本人写了一个得出四位(数字0-9)验证码的方法;在这里抛砖引玉,望各位能把脚本完善;
大家也可以下载附件运行;

With Browser("Exchange Management System").Page("Exchange Management System")

Dim a,b,c,d,num
‘qX是每一个位图检查点,q1--q10第一位,q11--q20第二位,q21--q30第三位,q31--q40第四位
q1=.Image("imgcode").Check(CheckPoint("imgcode"))
q2=.Image("imgcode").Check(CheckPoint("imgcode_2"))
q3=.Image("imgcode").Check(CheckPoint("imgcode_4"))
q4=.Image("imgcode").Check(CheckPoint("imgcode_5"))
q5=.Image("imgcode").Check(CheckPoint("imgcode_6"))
q6=.Image("imgcode").Check(CheckPoint("imgcode_8"))
q7=.Image("imgcode").Check(CheckPoint("imgcode_9"))
q8=.Image("imgcode").Check(CheckPoint("imgcode_10"))
q9=.Image("imgcode").Check(CheckPoint("imgcode_11"))
q10=.Image("imgcode").Check(CheckPoint("imgcode_12"))
q11=.Image("imgcode").Check(CheckPoint("imgcode_13"))
q12=.Image("imgcode").Check(CheckPoint("imgcode_14"))
q13=.Image("imgcode").Check(CheckPoint("imgcode_15"))
q14=.Image("imgcode").Check(CheckPoint("imgcode_16"))
q15=.Image("imgcode").Check(CheckPoint("imgcode_17"))
q16=.Image("imgcode").Check(CheckPoint("imgcode_18"))
q17=.Image("imgcode").Check(CheckPoint("imgcode_19"))
q18=.Image("imgcode").Check(CheckPoint("imgcode_20"))
q19=.Image("imgcode").Check(CheckPoint("imgcode_21"))
q20=.Image("imgcode").Check(CheckPoint("imgcode_24"))
q21=.Image("imgcode").Check(CheckPoint("imgcode_25"))
q22=.Image("imgcode").Check(CheckPoint("imgcode_26"))
q23=.Image("imgcode").Check(CheckPoint("imgcode_27"))
q24=.Image("imgcode").Check(CheckPoint("imgcode_28"))
q25=.Image("imgcode").Check(CheckPoint("imgcode_29"))
q26=.Image("imgcode").Check(CheckPoint("imgcode_30"))
q27=.Image("imgcode").Check(CheckPoint("imgcode_32"))
q28=.Image("imgcode").Check(CheckPoint("imgcode_33"))
q29=.Image("imgcode").Check(CheckPoint("imgcode_34"))
q30=.Image("imgcode").Check(CheckPoint("imgcode_35"))
q31=.Image("imgcode").Check(CheckPoint("imgcode_36"))
q32=.Image("imgcode").Check(CheckPoint("imgcode_37"))
q33=.Image("imgcode").Check(CheckPoint("imgcode_38"))
q34=.Image("imgcode").Check(CheckPoint("imgcode_39"))
q35=.Image("imgcode").Check(CheckPoint("imgcode_40"))
q36=.Image("imgcode").Check(CheckPoint("imgcode_41"))
q37=.Image("imgcode").Check(CheckPoint("imgcode_42"))
q38=.Image("imgcode").Check(CheckPoint("imgcode_43"))
q39=.Image("imgcode").Check(CheckPoint("imgcode_44"))
q40=.Image("imgcode").Check(CheckPoint("imgcode_45"))
'one check 得出第一位验证码
        If ( q1 = true )  Then
          a=8
          elseif(q2=  true) then
          a=9
          elseif(q3=  true) then
          a=7
          elseif(q4=  true) then
          a=4
          elseif  ( q5 = true ) then
          a=0
          elseif(q6=  true) then
          a=3
          elseif(q7=  true) then
          a=6
          elseif(q8=  true) then
          a=1
          elseif(q9=  true) then
          a=5
          elseif(q10=  true) then
          a=2
End If
'two check 得出第二位验证码
If  (q11=  true)  Then
          b=2
          elseif(q12=  true) then
          b=3
          elseif(q13=  true) then
          b=4
          elseif(q14=  true) then
          b=9
          elseif(q15=  true) then
          b=5
          elseif(q16=  true) then
          b=6
          elseif(q17=  true) then
          b=0
          elseif(q18=  true) then
          b=8
          elseif(q19=  true) then
          b=1
          elseif(q20=  true) then
          b=7
End If

'three check 得出第三位验证码
If ( q21 = true )  Then
          c=0
          elseif(q22=  true) then
          c=7
          elseif(q23=  true) then
          c=4
          elseif(q24=  true) then
          c=8
          elseif(q25=  true) then
          c=1
          elseif(q26=  true) then
          c=6
          elseif(q27=  true) then
          c=2
          elseif(q28=  true) then
          c=9
          elseif(q29=  true) then
          c=3
          elseif(q30=  true) then
          c=5
End If


'four check 得出第四位验证码
If  (q31=  true)  Then
          d=4
          elseif(q32=  true) then
          d=0
          elseif(q33=  true) then
          d=5
          elseif(q34=  true) then
          d=1
          elseif(q35=  true) then
          d=2
          elseif(q36=  true) then
          d=3
          elseif(q37=  true) then
          d=6
          elseif(q38=  true) then
          d=9
          elseif(q39=  true) then
          d=7
          elseif(q40=  true) then
          d=8
End If

num=(cstr(a)+cstr(b)+cstr(c)+cstr(d))
msgbox" 验证码是:"&num
        .WebEdit("imgcode").Set ""&num
        .WebButton("登 录").Click
        .Sync
End With

[ 本帖最后由 netsky_lt 于 2006-9-30 10:44 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

47#
发表于 2008-10-28 10:46:37 | 只看该作者
学习下如何识别验证码,
回复 支持 反对

使用道具 举报

  • TA的每日心情
    开心
    2016-8-25 10:16
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    46#
    发表于 2008-10-9 14:32:31 | 只看该作者
    原帖由 xueqinzhaoqing 于 2007-7-30 15:00 发表
    请问40个位图验证点是如何添加的

    在运用中遇到这样的问题
    还望能够给个好的解决办法
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    45#
    发表于 2008-2-15 18:20:20 | 只看该作者
    试了一天,发现对于验证码的最好方法还是请程序员帮忙了
    根本没办法获得
    期待其他解决办法
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    44#
    发表于 2008-2-1 11:16:03 | 只看该作者
    虽然目前没有碰到,不过还是很感谢楼主,楼主辛苦了,下了学习一下
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    43#
    发表于 2008-2-1 09:41:12 | 只看该作者
    下拉  谢谢分享  好好学习一下
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    42#
    发表于 2008-1-23 15:55:20 | 只看该作者

    回复 36# 的帖子

    有没有人知道啊,谢谢,刚刚接触不是很懂
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    41#
    发表于 2008-1-23 12:40:45 | 只看该作者
    服了,现在的验证码图片名竟然和里面的内容有关联?
    现在的验证码图片都是一样的名字按照规则随即生成里面的图片内容再送到客户端的,不知道你的规则怎么来的.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    40#
    发表于 2008-1-23 12:13:40 | 只看该作者
    研究吗,当然从简单的开始了,相信楼主会继续努力,和大家分享如何解决更复杂的情况
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    39#
    发表于 2008-1-23 12:10:29 | 只看该作者
    如果验证码有 变形、干扰码、个数变化的 话 那就复杂了啦
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-8-25 10:16
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    38#
    发表于 2008-1-19 11:23:29 | 只看该作者
    都好强啊
    我只有学习的份了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    37#
    发表于 2008-1-18 18:21:22 | 只看该作者
    你们的系统居然用这么简单的验证码
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    36#
    发表于 2008-1-18 16:26:42 | 只看该作者
    我刚刚接触qtp,按照你的方式处理时,提示The "imgcode" Image object was not found in the Object Repository.
    Check the Object Repository to confirm that the object exists or to find the correct name for the object.
    Line (7): "q1=.Image("imgcode").Check(CheckPoint("imgcode"))".

    请问是什么问题,怎么解决
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    35#
    发表于 2007-10-17 14:29:06 | 只看该作者
    大概能看懂脚本,新手学习阶段,大概是这样的如果第一个图像检查点为真,那么显示X(0-9之间的数),根据设置的检查点不同而定。不清楚理解的对不对?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    34#
    发表于 2007-10-17 13:11:18 | 只看该作者
    哈哈,我现在是学习阶段,也没有什么经验可谈,也发不了什么贴!这个综合指数可真不好弄呢!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    33#
    发表于 2007-8-26 00:24:35 | 只看该作者
    楼上的果然是高手亚
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    32#
    发表于 2007-8-24 20:37:52 | 只看该作者
    毕竟大家用的语言不一样,
    我不想用我的脚本语言识别所有验证码,那是不可能的,只有大家互相取长补短,才能告别验证时代!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    31#
    发表于 2007-8-24 20:35:15 | 只看该作者
    没有通用的验证码识别程序!

    只能根据验证码的规则去识别.。

    我现在能识别有杂点和杂线的验证,,当然还不能所有的都会做出脚本。
    特别是旋转或者扭曲的。  其余什么颜色,背景都不是问题

    如果大家不相信,可以到我空间看看.当然我是想大家互相学习验证码的自动识别!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    30#
    发表于 2007-8-13 10:26:28 | 只看该作者
    好帖子,好好学习下
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    29#
    发表于 2007-8-13 10:00:38 | 只看该作者
    这种办法 很幼稚的,还是写dll比较好
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-11 21:00 , Processed in 0.101439 second(s), 29 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表