51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 11902|回复: 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空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2006-9-30 11:29:32 | 只看该作者
不错.
但如果是用中文字来做检查点,那就无效了.
以下是其它几方法可以参考一下!
http://www.17testing.com/bbs/vie ... &extra=page%3D1
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2006-9-30 12:41:55 | 只看该作者
如果是中文的也可以使用这种方法,只要清楚图片规则就可以;
有人提到也可以通过object.GetROProperty来更加好,试验中....
回复 支持 反对

使用道具 举报

  • TA的每日心情
    开心
    2016-2-27 08:48
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    4#
    发表于 2006-10-12 21:56:57 | 只看该作者
    楼主真厉害! 连验证码的方法都得到了! 不过,楼主用了太多的elseif 语句,建议你使用 Case 语句,把代码优化一下。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5#
    发表于 2006-10-18 15:09:19 | 只看该作者

    回复 #1 netsky_lt 的帖子

    你的随机码是怎么产生的.你怎么知道If ( q1 = true )  Then
              a=1
              elseif(q2=  true) then
              a=2
              elseif(q3=  true) then
              a=4
              elseif(q4=  true) then
              a=5
              elseif  ( q5 = true ) then
              a=0
              elseif(q6=  true) then
              a=6
              elseif(q7=  true) then
              a=7
    a一定等于这些数我可以写成别的数啊.如果那样好象执行的时候随机码错误.你能告诉我你怎样知道a等于这些数的吗?可能我苯点看不懂谢谢指教.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
     楼主| 发表于 2006-10-20 15:07:29 | 只看该作者
    呵呵,你下载附件,就清楚啦,qX是每一个位图检查点,也只能对应一个数字,不是随机的啊。
    你看一下对应的位图检查点吧。
    q1=.Image("imgcode").Check(CheckPoint("imgcode"))
    q2=.Image("imgcode").Check(CheckPoint("imgcode_2"))
    q3=.Image("imgcode").Check(CheckPoint("imgcode_4"))


    关于中文验证码破解,有空再贴上来共大家分享!

    [ 本帖最后由 netsky_lt 于 2006-11-20 22:16 编辑 ]
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
    发表于 2007-4-20 01:23:30 | 只看该作者
    顶 好帖 谢谢 学习!·
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
    发表于 2007-4-20 09:24:26 | 只看该作者
    只要图片有规律,就可以搞定~~
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9#
    发表于 2007-4-20 12:44:30 | 只看该作者
    验证码一般都带有随机的底色的,这个位图检查回放不了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10#
    发表于 2007-4-20 13:23:24 | 只看该作者
    顶一下...
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11#
    发表于 2007-4-23 09:53:16 | 只看该作者
    也些验证码是字母的哦
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12#
    发表于 2007-4-23 15:28:51 | 只看该作者

    好贴

    sdlkfj2 顶!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    13#
    发表于 2007-4-23 17:43:02 | 只看该作者
    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

    请问这些对应值(q与a)是怎么出来的?能描述一下吗,正碰到此问题?郁闷啊
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    14#
    发表于 2007-4-23 17:47:58 | 只看该作者
    是不是作这句命令:q1=.Image("imgcode").Check(CheckPoint("imgcode"))时,当时第一个验证码是8,所以就得出If ( q1 = true )  Then  a=8啊???期待佳音
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    15#
    发表于 2007-4-24 11:25:53 | 只看该作者
    按以上方法我进行了脚本编制,为什么每次读出的num值都是一样的,也没有随验证码的改变而改变啊,,望再指点啊
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    16#
    发表于 2007-4-25 17:39:15 | 只看该作者
    人呢?人都去哪了啊
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    17#
    发表于 2007-4-26 14:36:29 | 只看该作者
    下来试试
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    18#
    发表于 2007-4-27 16:07:02 | 只看该作者
    段念曾经发表过一篇关于关于验证码的文章,可以参考一下
    baidu 搜索  关河测试网
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    19#
    发表于 2007-4-29 15:31:09 | 只看该作者
    楼主小弟现在碰到一个问题,用你的这段代码是可以将4位验证码取出,但是像那种验证码的颜色和背景图片会变动的验证码我该怎样录制啊,请楼主给出点建议!!!!!!
    小弟现在录制是让开发人员将背景图片和字体的颜色都不变是可以用这段代码的!!!!
    小弟先在这里谢谢了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    20#
    发表于 2007-7-30 15:00:25 | 只看该作者
    请问40个位图验证点是如何添加的
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-13 23:08 , Processed in 0.093434 second(s), 28 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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