jackael008 发表于 2005-8-31 17:01:16

问个问题,急

Window CloseWin, "", ""这个命令如果出错,On Error能否捕获到,如果不能捕获到,怎么才能捕获到这个错误呢???

ilovejolly 发表于 2005-9-1 08:39:57

on error 和catch expection差不多的意思,是对异常的处理。比如对一个文件的操作,脚本可以顺利执行的前提,是要这个文件存在。如果这个文件不存在,写一个on error goto,就可以自己写log或者跳一个提示出来,来表示这里有异常。
如果自己不处理,robot也会自己去执行后面的脚本。没有成功执行的命令log里面自己就会纪录!

[ Last edited by ilovejolly on 2005-9-1 at 08:53 ]

jackael008 发表于 2005-9-1 09:51:53

但我是想让log里不要纪录这样的错误~,可以吗?
还有我试过on error了,没反映~!怎么处理啊?

ilovejolly 发表于 2005-9-1 10:07:01

1 一个命令失败,就等于脚本失败,如果连这样最基本的信息都不想记录,那么就关闭掉log。
2 楼主的on error是怎么用的?是否清楚这句话是干什么的?

jackael008 发表于 2005-9-1 13:27:38

有些ie关闭,可能会有个提示或登陆对话框,虽然会得到有ie窗口,却关不掉,因此,window winclose会包错
Function CloseIEWindows() As Integer

On Error GoTo ErrorHandler

static TIMELIMIT as Integer
dim StartTime,EndTime as Long

TIMELIMIT=5
StartTime=timer

do while SQAFindObject("\;Type=Window;Caption={*Microsoft Internet Explorer*}") = sqaSuccess

    Window CloseWin, "Caption={*Microsoft Internet Explorer*}",""

    EndTime=timer
   
    if(EndTime<StartTime) then
      StartTime=0
    end if
    if(EndTime-StartTime>=TIMELIMIT) then
      exit do
    end if
      
loop

   CloseIEWindows= 1

Exit Function


ErrorHandler:
   sqaLogMessage sqaWarning, Error$, ""

   
End Function

司空公子 发表于 2005-9-1 13:47:54

On Error GoTo是出错处理,表示程序中出现错误就去执行相应的代码。错误包括各种可能的错误,比如文件打不开等等。因此它是针对你的程序内部的错误来的。像你说的这个应该是IE自己的出错问题了,跟你robot里写的脚本没有关系的。

jackael008 发表于 2005-9-1 13:51:36

象你这么说的,我就是无法catch到window winclose的错误了吗?

ilovejolly 发表于 2005-9-1 14:01:48

有提示的,用判断去解决。可以从窗口存在,窗口标题,label的内容去判断!

我看不出来这个脚本实际上有什么作用,楼主零碎的问了些问题,然后拼了一个脚本。如果只是想研究思路,没有必要在细节方面纠缠。真正的脚本,哪些是需要你改动的地方,你可以在工作中留意下!

还有有些问题,是可以通过不同途径解决的,所以开始不妨就直接把你的需求说出来,而不要首先假定一个方向。

司空公子 发表于 2005-9-1 14:53:40

如果在自动化测试过程中,出现某些错误是非预期的,比如出现了IE或者操作系统的警告框之类的。因为这些都不是自己的脚本造成的,所以用on error是无法捕获到的。那么可以在脚本中的一些可能造成这些情况的位置加SQAWaitObject之类的,希望能够获取某步操作之后所应该出现的页面或者object之类的。
如果没有,而是出现了一些警告框什么的,如果能够绕过它,比如取消了警告之后可以继续往下走,那么可以在log中记录一个警告之后信息,调用相应的操作来取消警告框,接着继续测试。
如果错误很严重,甚至页面直接fail掉,显示一大堆错误信息什么的,那测试也就没法进行下去了。在log里记录后,可以调用windows API,关闭所有窗口,回到测试的初始状态,再继续测其它不相关的模块什么的。
页: [1]
查看完整版本: 问个问题,急