ken32310179 发表于 2012-6-7 10:44:02

qtp10,关于捕获不了Dialog对象的问题

各位大大:
    我在一个网页对话框下录入信息后保存,弹出一个JS提示框,但QTP录制不下这个动作,我添加对象的时候能找到这个dialog,但qtp识别是在页面下,而不是这个网页对话框下,自己手动加脚本也不行。不太好描述,我直接重复我的动作吧。
    1.录入页面录入基本信息后-保存,弹出js提示框,保存成功。(这时候是可以录制到dialog的)
    2.录入后需要审核,弹出一个网页对话框,输入审核意见,保存,同样弹出一个JS提示框(这时候就捕获不了这个dialog了)。下面是我的脚本,请高手指点下,困惑我几天了。
Function MakeString(inputlength)

        Dim I,x,B,A
        If IsNumeric(inputlength) Then
        For I = 1 To inputlength
                A = Array("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z")
                Randomize
                x=RandomNumber(0,25)
                B = A(x)
                makestring =makestring +B
        Next
                MakeString = makestring
        else
                msgbox ("Only Numeric string is allowed")
        End If
End Function


Browser("中国光大银行物业专项维修资金业务系统").Page("中国光大银行物业专项维修资金业务系统").WebEdit("username").Set "888888"
Browser("中国光大银行物业专项维修资金业务系统").Page("中国光大银行物业专项维修资金业务系统").WebEdit("password").SetSecure "4fd00e32470f3993efbb7bbaaad1c67995df"
Browser("中国光大银行物业专项维修资金业务系统").Page("中国光大银行物业专项维修资金业务系统").WebButton("登录").Click
Browser("中国光大银行物业专项维修资金业务系统").Page("中国光大银行物业专项维修资金业务系统_2").Link("资金交存数据录入").Click
Browser("中国光大银行物业专项维修资金业务系统").Page("中国光大银行物业专项维修资金业务系统_2").Frame("content").WebButton("单笔信息录入").Click
Browser("中国光大银行物业专项维修资金业务系统").Page("中国光大银行物业专项维修资金业务系统_2").Frame("content_2").WebEdit("ctl00$contentPlaceHolder$txt_d").Set MakeString(9)
Browser("中国光大银行物业专项维修资金业务系统").Page("中国光大银行物业专项维修资金业务系统_2").Frame("content_2").WebEdit("ctl00$contentPlaceHolder$txt_a").Set "201206071013"
Browser("中国光大银行物业专项维修资金业务系统").Page("中国光大银行物业专项维修资金业务系统_2").Frame("content_2").WebEdit("ctl00$contentPlaceHolder$txt_d_2").Set "1"
Browser("中国光大银行物业专项维修资金业务系统").Page("中国光大银行物业专项维修资金业务系统_2").Frame("content_2").WebEdit("ctl00$contentPlaceHolder$txt_d_3").Set "1"
Browser("中国光大银行物业专项维修资金业务系统").Page("中国光大银行物业专项维修资金业务系统_2").Frame("content_2").WebEdit("ctl00$contentPlaceHolder$txt_f").Set "1"
Browser("中国光大银行物业专项维修资金业务系统").Page("中国光大银行物业专项维修资金业务系统_2").Frame("content_2").WebEdit("ctl00$contentPlaceHolder$txt_f_2").Set "1"
Browser("中国光大银行物业专项维修资金业务系统").Page("中国光大银行物业专项维修资金业务系统_2").Frame("content_2").WebEdit("ctl00$contentPlaceHolder$txt_a_2").Set "111"
Browser("中国光大银行物业专项维修资金业务系统").Page("中国光大银行物业专项维修资金业务系统_2").Frame("content_2").WebEdit("ctl00$contentPlaceHolder$txtHo").Set "99"
Browser("中国光大银行物业专项维修资金业务系统").Page("中国光大银行物业专项维修资金业务系统_2").Frame("content_2").WebButton("计算").Click
Browser("中国光大银行物业专项维修资金业务系统").Page("中国光大银行物业专项维修资金业务系统_2").Frame("content_2").WebEdit("ctl00$contentPlaceHolder$GERZW").Set "11"
Browser("中国光大银行物业专项维修资金业务系统").Page("中国光大银行物业专项维修资金业务系统_2").Frame("content_2").WebEdit("ctl00$contentPlaceHolder$ZHJHA").Set "11"
Browser("中国光大银行物业专项维修资金业务系统").Page("中国光大银行物业专项维修资金业务系统_2").Frame("content_2").WebEdit("ctl00$contentPlaceHolder$LXSJ").Set "11"
Browser("中国光大银行物业专项维修资金业务系统").Page("中国光大银行物业专项维修资金业务系统_2").Frame("content_2").WebButton("保存").Click
Browser("中国光大银行物业专项维修资金业务系统").Dialog("来自网页的消息").WinButton("确定").Click
Browser("中国光大银行物业专项维修资金业务系统").Page("中国光大银行物业专项维修资金业务系统_2").Frame("content_3").Link("通过申请").Click
Browser("中国光大银行物业专项维修资金业务系统").Dialog("来自网页的消息").WinButton("确定").Click
Browser("中国光大银行物业专项维修资金业务系统").Page("中国光大银行物业专项维修资金业务系统_2").Link("资金交存数据初审").Click

Browser("中国光大银行物业专项维修资金业务系统").Page("中国光大银行物业专项维修资金业务系统_2").Frame("content_4").Link("初审").Click


Browser("中国光大银行物业专项维修资金业务系统").Window("物业管理专项维修资金交存申请表 -- 网页对话框").Page("物业管理专项维修资金交存申请表").WebEdit("repExamination$ctl00$txtRemark").Set "111"
Browser("中国光大银行物业专项维修资金业务系统").Window("物业管理专项维修资金交存申请表 -- 网页对话框").Page("物业管理专项维修资金交存申请表").WebButton("点击这里签名").Click
Browser("中国光大银行物业专项维修资金业务系统").Window("物业管理专项维修资金交存申请表 -- 网页对话框").Page("物业管理专项维修资金交存申请表").WebEdit("txtPwd").SetSecure "4fd00e882d30b444383f6f4370b4a9e5472f"

Browser("中国光大银行物业专项维修资金业务系统").Window("物业管理专项维修资金交存申请表 -- 网页对话框").Page("物业管理专项维修资金交存申请表").WebButton("确定").Click
Browser("中国光大银行物业专项维修资金业务系统").Window("物业管理专项维修资金交存申请表 -- 网页对话框").Page("物业管理专项维修资金交存申请表").WebButton("保存").Click

(这后面有一个弹出js的提示框,但录制不了)

joykao 发表于 2012-6-7 11:30:22

那些弹出框有用吗?没用直接加一个场景恢复一出现直接把它关掉
或者你先手工把那个js弹出框搞出来然后用qtp spy 去看看它的属性,然后可以自己加上相应的脚本哇{:4_99:}

黑羽祭 发表于 2012-6-7 13:44:33

本帖最后由 黑羽祭 于 2012-6-7 13:47 编辑

回复 1# ken32310179
1.如果录制不了,用手动将对象添加至对象库后,再进行编写试试。
2.或者你在打开QTP的时候同时勾选上VB+WEB+AXTIVE试试。
3.都不行,考虑如虚拟对象、sendkey、相对坐标等方法规避掉吧。

djl2006qy 发表于 2012-8-20 16:02:21

Browser("中国光大银行物业专项维修资金业务系统").Window("物业管理专项维修资金交存申请表 -- 网页对话框").Dialog("text:=来自网页的消息").WinButton("text:=确定").Click
为Dialog,加上Window父对象,再去找JS弹出的对话框,就可以识别到了。

z16017545 发表于 2014-3-3 18:39:41

回复 4# djl2006qy


    遇到了同样人问题,按这个方法解决吧。:victory:

auto_tester 发表于 2014-3-7 12:46:09

学习了
页: [1]
查看完整版本: qtp10,关于捕获不了Dialog对象的问题