bfckop 发表于 2012-8-22 11:30:11

QTP9.2页面刷新问题求助

对web页面测试时,需要经常刷新充值页面。设计了一个函数,在调用时,采用refresh和模拟F5两种方法,但是会出现页面假死情况,脚本停顿,直到失败。如果在卡住时,手工F5,则可继续。说明浏览器是没有假死的,程序页面卡住。环境是winxpsp3+qtp9.2+ie6.0。请各位帮忙看下有否更好的刷新方式。Public Function Func_Refresh(Bill_Num)

        Set WShell = CreateObject("Wscript.shell")
        WShell.sendkeys "{F5}"
        Set WShell = nothing
        Wait(1)
        Str_information = Browser("micClass:=Brower").Page("micClass:=Page").Frame("计费号码").WebEdit("计费号码").GetROProperty("value")
        If Str_information <> "" Then
                Browser("micClass:=Brower").Refresh
        End If
        If Not Browser("micClass:=Brower").Page("micClass:=Page").Frame("Frame").WebEdit("菜单查询").Exist(1) Then
                Browser("micClass:=Brower").Page("micClass:=Page").Frame("计费号码").WebEdit("计费号码").Click
                Set WShell = CreateObject("Wscript.shell")
                WShell.sendkeys "{F5}"
                Set WShell = nothing
        End If
        Wait(2)
        If Browser("micClass:=Brower").Page("micClass:=Page").Frame("计费号码").WebEdit("计费号码").Exist(2) Then
                Browser("micClass:=Brower").Page("micClass:=Page").Frame("计费号码").WebEdit("计费号码").Set Bill_Num
                WShell.sendkeys "{Enter}"
                Set WShell = nothing
        Else
                Browser("micClass:=Brower").Refresh
        End If
        i=0
        Do While Not Browser("micClass:=Brower").Page("micClass:=Page").Frame("Frame").WebEdit("菜单查询").Exist(1)
                i=i+1
                If Not Browser("micClass:=Brower").Page("micClass:=Page").Frame("计费号码").WebEdit("计费号码").Exist(1) Then
                        Browser("micClass:=Brower").Refresh
                Else
                        Browser("micClass:=Brower").Sync
                        Browser("micClass:=Brower").Page("micClass:=Page").Frame("计费号码").WebEdit("计费号码").Click
                        Set WShell = CreateObject("Wscript.shell")
                        WShell.sendkeys "{F5}"
                        Set WShell = nothing        
                End If       
                If Browser("micClass:=Brower").Page("micClass:=Page").Frame("计费号码").WebEdit("计费号码").Exist(5) Then
                        Browser("micClass:=Brower").Page("micClass:=Page").Frame("计费号码").WebEdit("计费号码").Set Bill_Num
                        Set WShell = CreateObject("Wscript.shell")
                        WShell.sendkeys "{Enter}"
                        Set WShell = nothing
                        Bill_Num = Browser("micClass:=Brower").Page("micClass:=Page").Frame("计费号码").WebEdit("计费号码").GetROProperty("value")
                        If Bill_Num<>"" Then
                                Exit Do
                        End If
                End If
                If i=10 Then
                        Exit Do
                End If
        Loop

        If Window("InternetExplorer脚本错误").Exist(2) Then
                While Window("InternetExplorer脚本错误").Exist(1)
                        Window("InternetExplorer脚本错误").Close
                Wend
        End If
        Func_CloseInformation
End Function

xjwldlover 发表于 2012-8-22 11:41:49

我遇到卡住的原因基本都是由于操作对象不存在。你在卡住的地方暂停一下qtp看那些操作前的对象是否存在,比如Browser("micClass:=Brower").refresh的Browser("micClass:=Brower")对象是否存在。如果不存在,那就应该是等待时间没有设置好
页: [1]
查看完整版本: QTP9.2页面刷新问题求助