deadhunter 发表于 2010-8-13 09:44:57

一个简单的登录操作,但是运行很慢,要几分钟,请教大师们是啥原因导致?

请教一个问题,为什么下面的代码运行这么慢

Function setObj(obj,operator,value)
        Dim errMsg,succMsg
        If Not obj.Exist Then
                errMsg = obj.ToString & " 不存在"
                'errMsg = "对象不存在"
                Log "STEP", errMsg
                setObj = False
                Exit Function
        End If

        Select Case operator
        Case 1
                '执行set方法
                succMsg = obj.ToString & " set " & value
                obj.Set value
                Log "STEP", succMsg
        Case 2
                '执行Click方法
                succMsg = obj.ToString & " 执行方法Click "
                obj.Click
                Log "STEP", succMsg
        Case 3
                '执行Object.innerText属性
                succMsg = obj.ToString & " Object.innerText set " & value
                obj.Object.innerText = value
                Log "STEP", succMsg
        Case 4
                '判断item的值是否在weblist中
                If Not checkWebList(obj,value) Then
                        errMsg = obj.ToString & " 中item不存在" & value
                        setObj = False
                        Log "STEP", errMsg
                        Exit Function
                End If
                succMsg = obj.ToString & " Select " & value
                obj.Select value
                Log "STEP", succMsg
        Case 5
                '判断item值是否正确
                'If CInt(value)>CInt(obj.GetROProperty("items count")) Then
                '        errMsg = obj.ToString & " 中item不存在" & value
                '        setObj = False
                '        Log "STEP", errMsg
                '        Exit Function
                'End If
                succMsg = obj.ToString & " Select " & value
                obj.Select value
                Log "STEP", succMsg
        Case 6
                '执行验证码set方法
                succMsg = obj.ToString & " set " & value
                obj.Click
                obj.Set value
                Log "STEP", succMsg
        End Select
        setObj = True
End Function

Function login(email,password)
        Log "STEP","in Function login()"
       
        '关闭所有浏览器窗口
        closeBrowser()
        '创建IE
        OpenWeb("http://test/login.html")
       
If Not setObj(Browser("test").Page("test").WebEdit("email"),1,email)_
    And setObj(Browser("test").Page("test").WebEdit("password"),1,password)Then
'          Or setObj(Browser("test").Page("test").WebEdit("验证码"),1,code)
Log "STEP","找不到登录入口"
Exit Function
End If

If Not setObj(Browser("tett").Page("test").WebButton("登录"),2,"")Then
        Log "STEP","找不到登录按钮"
    Exit Function
End If

If isExist(Browser("test").Page("test").Link("退出"))Then
   login=true
End If

End Function

msnshow 发表于 2010-8-15 18:15:50

手工运行的话情况如何

kavensyw 发表于 2010-8-15 21:53:27

会不会是找验证对象等是否存在的时间太长了
比如: obj.Exist 的时间太长了?
我一般习惯obj.Exist(s)的形式

[ 本帖最后由 kavensyw 于 2010-8-15 21:55 编辑 ]

xue202757 发表于 2010-8-16 18:11:29

是否关联了Recovery Scenario?

zwd183335 发表于 2010-8-17 13:27:50

obj.Exist可以设置TimeOut

zwd183335 发表于 2010-8-17 13:28:45

还有运行模式有快速模式,在设置里

deadhunter 发表于 2010-8-26 15:42:33

原帖由 zwd183335 于 2010-8-17 13:27 发表 http://bbs.51testing.com/images/common/back.gif
obj.Exist可以设置TimeOut

请问在哪设置呢?

deadhunter 发表于 2010-8-26 15:43:53

原帖由 msnshow 于 2010-8-15 18:15 发表 http://bbs.51testing.com/images/common/back.gif
手工运行的话情况如何

你指单独录制脚本来运行,还是手工操作登录,如果手工操作很快就完成

sogohu 发表于 2010-8-27 10:03:07

回复 8# 的帖子

感觉是obj.exsit 的问题,换成waitproperty,应该会快点
页: [1]
查看完整版本: 一个简单的登录操作,但是运行很慢,要几分钟,请教大师们是啥原因导致?