guoning1973 发表于 2005-8-30 15:56:17

SQAWaitForObject的使用??

能举个例子吗

ilovejolly 发表于 2005-8-30 16:11:39

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:18

Re:ilovejolly

谢谢斑竹的热情帮助和提点

guoning1973 发表于 2005-8-30 16:45:11

Re:ilovejolly

在请问版主,我想等待一个提示框的弹出,那用context notation这个参数,他的值是该弹出框的caption?

ilovejolly 发表于 2005-8-30 17:25:59

可以有很多种方法来达到目的,比如取窗口的caption,或者象上面的例子一样取按钮的text,都可以。只要能满足需求,用什么条件并不重要。至于具体写法,楼主自己动手一试便知。在recMethod$中,要注意两点,1是object有这个属性,2是根据你提供的条件,rt可以定位到object!

guoning1973 发表于 2005-9-2 17:24:36

RE:ilovejolly

Result = SQAFindObject("Type=Window;Caption=XX办公管理信息系统")
if Result=0 then
         Window SetContext, "Caption=摩卡办公管理信息系统",""
         PushButton Click, "Text=取消"
endif
robot确没有执行这行代码,不知有什么问题?

ilovejolly 发表于 2005-9-2 17:53:32

昏了头了,误导了大家
sorry

[ Last edited by ilovejolly on 2005-9-2 at 18:06 ]

gabriel 发表于 2005-9-2 18:00:38

result=0应该是表示pass吧?

ilovejolly 发表于 2005-9-2 20:22:15

楼主自己动手调试,问题应该不难发现
你看看哪句走不过去,如果有问题,再发贴

gabriel 发表于 2005-9-3 11:22:23

呵呵,智者千虑必有一失嘛!斑竹是最棒滴!!!!

guoning1973 发表于 2005-9-5 15:18:28

RE:ilovejolly

斑竹,捕捉不到我想要的object。我想要得是:伴随着打开一个页面,回有一个提示框出现,我想find到该对话框。我试了这条语句:Result = SQAFindObject("Type=Window;Caption=XX办公管理信息系统")没有被执行

guoning1973 发表于 2005-9-5 15:19:17

RE:ilovejolly

或是没有找到

guoning1973 发表于 2005-9-5 15:23:21

RE:ilovejolly

是没有找到,报1003的错误

gabriel 发表于 2005-9-5 16:08:19

楼主在前面加上   Window SetContext, "CurrentWindow", ""试试

ilovejolly 发表于 2005-9-5 16:34:10

我以一个简单的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:02

ok了,但不知版主为什么用Type=label,Class=#32770又指什么?我用inspector获得是window,caption=Microsoft Internet Explorer

guoning1973 发表于 2005-9-6 13:42:37

识别到该object后:
Window SetContext, "Caption=Microsoft Internet Explorer", ""
    PushButton Click, "Text=取消"(这条语句没有被执行,到此会产生错误。)

ilovejolly 发表于 2005-9-6 13:49:01

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:53

RE:ilovejolly

多谢斑竹,PushButton Click, "Text=取消"我已经换成InputKeys "{TAB}{ENTER},而且已经通过。多谢斑竹不耐其烦的悉心指导。

ilovejolly 发表于 2005-9-6 14:30:40

上面的脚本,都是手工写的?怎么会用text这个属性

我录制下来的如下:
PushButton Click, "Name=btncancel" ,一般录制下来的脚本都是可以顺利回放的
页: [1] 2
查看完整版本: SQAWaitForObject的使用??