taoyi_cheng 发表于 2005-10-31 17:23:34

求助:if语句不执行

下面是我编辑的一段脚本,内容是在一个登录页面输入不正确的用户名、密码,弹出一个提示框,提示重新输入用户名、密码,点击这个提示框上的“确定”按钮,回到登录页面。我想先根据输入的用户名、密码判断输入是否正确,用sqafindobject判断提示框是否弹出,如果弹出,经确认后点击上面的“确认”按钮。现在的情况是,脚本可以执行,但是IF语句根本就没有执行,请大家帮我看一下,问题出在哪里了
Sub Main
    Dim Result As Integer

    startbrowser "http://www.asdf.com.cn/scweb/logon.jsp", "WindowTag=WEBBrowser"'打开浏览器
    window WMaximize,"currentwindow",""'把当前窗口最大化
    EditBox Click, "Name=username", "Coords=1,1"
    InputKeys "asdf{TAB}"'输入用户名
    InputEncKeys "CgAAABUAAAAVDaAIw/ZzQDyf"'输入密码
    sqaconsolewrite"asdfasdf1"
   
    HTMLImage Click, "Index=26", "Coords=1,1"'点击登录按钮
    sqaconsolewrite "asdfasdf2"
    if sqafindobject("type = window;Caption = Microsoft Internet Explorer;class=#32770") = sqasuccess then '判断是否弹出提示框
       sqaconsolewrite "asdfasdf3"
       window setcontext,"Caption = Microsoft Internet Explorer;class=#32770",""'设置焦点在弹出页面上
       sqaconsolewrite "asdfasdf4"
   if sqafindobject("type = label;text = 用户名或密码输入错误,请重新输入!") = sqasuccess and sqafindobject("type = pushbutton;text = 确定") = sqasuccess then
      'result = sqapass
       sqaconsolewrite "asdfasdf5"
      'sqaconsolewrite str(sqasuccess )
      PushButton Click, "Text=确定"
   end if
    end if

End Sub

海龙 发表于 2005-10-31 17:29:44

在if前加入

result=sqafindobject("type = window;Caption = Microsoft Internet Explorer;class=#32770")

然后你看一下,然后你根据result的值调试脚本。

taoyi_cheng 发表于 2005-10-31 17:37:50

谢谢海龙版主如此迅速的答复,马上调试

qingchunjun 发表于 2005-10-31 17:39:05

if sqafindobject("type = label;text = 用户名或密码输入错误,请重新输入!") = sqasuccess and sqafindobject("type = pushbutton;text = 确定") = sqasuccess肯定是有错的,按照你现在的写法sqafindobject是不能正确定位你的label和pushbutton的。其实你可以将type = label换成type=window,并用caption来定位。只要确定有弹出窗口后,还需要用sqafindobject("type = pushbutton;text = 确定") 来判断是否有确定按钮吗?直接click就行了

taoyi_cheng 发表于 2005-10-31 17:53:50

问题是不管怎么写,IF根本就进不去呀,我设了断点,IF是不进去的。是不是有什么地方的设置有问题?

taoyi_cheng 发表于 2005-10-31 18:00:38

我还是觉得问题出在第一个IF语句的地方,因为IF后面的语句根本就没有执行。

taoyi_cheng 发表于 2005-11-8 13:33:32

问题解决了:)

qingchunjun 发表于 2005-11-10 17:46:11

既然解决了,请楼主说说解决方法!好让大家也学学

taoyi_cheng 发表于 2005-11-11 09:07:24

sqafindobject("type = window;Caption = Microsoft Internet Explorer;class=#32770") 的原因。

tongfenglcz 发表于 2005-11-25 10:03:50

原帖由 taoyi_cheng 于 2005-11-11 09:07 发表
sqafindobject("type = window;Caption = Microsoft Internet Explorer;class=#32770") 的原因。



什么原因?我现在的问题也是不执行if语句
用result=sqafindobject("type = window;Caption = Microsoft Internet Explorer;class=#32770") 返回的result居然是1002,即Invalid syntax in Recognition Method.

我怎么就看不出来 哪写的有问题啊?谢谢指教,感激不尽!!!

海龙 发表于 2005-11-25 14:19:55

result=sqafindobject("type = window;Caption = Microsoft Internet Explorer;class=#32770")

原因是有空格,请改为
result=sqafindobject("type=window;Caption=Microsoft Internet Explorer;class=#32770")

这是返回的是1003,对象找不到。
页: [1]
查看完整版本: 求助:if语句不执行