51Testing软件测试论坛

标题: SQAWaitForObject的使用?? [打印本页]

作者: guoning1973    时间: 2005-8-30 15:56
标题: SQAWaitForObject的使用??
能举个例子吗
作者: ilovejolly    时间: 2005-8-30 16:11
This example waits up to two minutes for a particular push button to appear.
Sub Main
Dim Result As Integer
Window SetContext, "Caption=MyApp", ""
MenuSelect "File->Open..."
Window SetContext, "Caption=Open", ""
'The OK button may take a long time to appear. We can use
'        SQAWaitForObject to synchronize our script without
'        increasing the default wait period of all other actions
Result = SQAWaitForObject("Type=PushButton;Text=OK", 120000)
If Result = sqaSuccess Then
            ...          ' add the rest of the actions/tests here
End If
End Sub

这些函数的例子,help里面都有,希望能动手自己找找!
作者: guoning1973    时间: 2005-8-30 16:28
标题: Re:ilovejolly
谢谢斑竹的热情帮助和提点
作者: guoning1973    时间: 2005-8-30 16:45
标题: Re:ilovejolly
在请问版主,我想等待一个提示框的弹出,那用context notation这个参数,他的值是该弹出框的caption?
作者: ilovejolly    时间: 2005-8-30 17:25
可以有很多种方法来达到目的,比如取窗口的caption,或者象上面的例子一样取按钮的text,都可以。只要能满足需求,用什么条件并不重要。至于具体写法,楼主自己动手一试便知。在recMethod$中,要注意两点,1是object有这个属性,2是根据你提供的条件,rt可以定位到object!
作者: guoning1973    时间: 2005-9-2 17:24
标题: RE:ilovejolly
Result = SQAFindObject("Type=Window;Caption=XX办公管理信息系统")
if Result=0 then
         Window SetContext, "Caption=摩卡办公管理信息系统",""
         PushButton Click, "Text=取消"
end  if
robot确没有执行这行代码,不知有什么问题?
作者: ilovejolly    时间: 2005-9-2 17:53
昏了头了,误导了大家
sorry

[ Last edited by ilovejolly on 2005-9-2 at 18:06 ]
作者: gabriel    时间: 2005-9-2 18:00
result=0应该是表示pass吧?
作者: ilovejolly    时间: 2005-9-2 20:22
楼主自己动手调试,问题应该不难发现
你看看哪句走不过去,如果有问题,再发贴
作者: gabriel    时间: 2005-9-3 11:22
呵呵,智者千虑必有一失嘛!斑竹是最棒滴!!!!
作者: guoning1973    时间: 2005-9-5 15:18
标题: RE:ilovejolly
斑竹,捕捉不到我想要的object。我想要得是:伴随着打开一个页面,回有一个提示框出现,我想find到该对话框。我试了这条语句:Result = SQAFindObject("Type=Window;Caption=XX办公管理信息系统")没有被执行
作者: guoning1973    时间: 2005-9-5 15:19
标题: RE:ilovejolly
或是没有找到
作者: guoning1973    时间: 2005-9-5 15:23
标题: RE:ilovejolly
是没有找到,报1003的错误
作者: gabriel    时间: 2005-9-5 16:08
楼主在前面加上   Window SetContext, "CurrentWindow", ""  试试
作者: ilovejolly    时间: 2005-9-5 16:34
我以一个简单的web页面做例子,希望对你有帮助:
1 insert at cursor,在弹出的窗口点一下,得到如下代码:
Window SetContext, "Caption=Microsoft Internet Explorer;Class=#32770", ""
注意这个窗口上可能有多个对象,我点的是caption。
2 result = sqafindobject("Type=label;Caption=Microsoft Internet Explorer;Class=#32770")
注意我的recMethod$的写法!
以上代码调试通过
有什么问题,再来讨论
作者: guoning1973    时间: 2005-9-6 12:57
ok了,但不知版主为什么用Type=label,Class=#32770又指什么?我用inspector获得是window,caption=Microsoft Internet Explorer
作者: guoning1973    时间: 2005-9-6 13:42
识别到该object后:
Window SetContext, "Caption=Microsoft Internet Explorer", ""
    PushButton Click, "Text=取消"(这条语句没有被执行,到此会产生错误。)
作者: ilovejolly    时间: 2005-9-6 13:49
class你可以理解成是对不同窗体的分类,这个是c里面的
比如Class=#32770,指dialogbox,Class=IEFrame,指IE

我前面说过了,不管你用什么方法,你写脚本所要做的,就是要让robot可以根据属性找到对象

[ Last edited by ilovejolly on 2005-9-6 at 14:26 ]
作者: guoning1973    时间: 2005-9-6 14:21
标题: RE:ilovejolly
多谢斑竹,PushButton Click, "Text=取消"我已经换成InputKeys "{TAB}{ENTER},而且已经通过。多谢斑竹不耐其烦的悉心指导。
作者: ilovejolly    时间: 2005-9-6 14:30
上面的脚本,都是手工写的?怎么会用text这个属性

我录制下来的如下:
PushButton Click, "Name=btncancel" ,一般录制下来的脚本都是可以顺利回放的
作者: taoyi_cheng    时间: 2005-11-9 11:47
sqafindobject("Type=label;Caption=Microsoft Internet Explorer;Class=#32770")
可以识别要识别的提示框,可是这句话同样可以把一个新的页面窗口:"type=Window;Caption=SC社区 - 北京×××信息技术有限公司 - Microsoft Internet Explorer"识别出来。这怎么办呢?
作者: ilovejolly    时间: 2005-11-9 11:53
你是怎么确定sqafindobject("Type=label;Caption=Microsoft Internet Explorer;Class=#32770")可以识别“type=Window;Caption=SC社区 - 北京×××信息技术有限公司 - Microsoft Internet Explorer”的,这两个很不一样




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2