0

从最近几天开始,我正在尝试同步两个相互依赖的对象以执行它们。

EX:对象 B 应该仅在对象 A 完成后执行。

现在,在我的场景中,对象 A 需要一些时间来执行,为此我需要同步这两个对象。

对象的完成将产生一个图像,告诉用户该过程是成功完成还是失败。

下面是我的代码:

sLoop = True

Do while sLoop

If (Browser("ABC").Page("PQR").Frame("XYZ").Image("BatchSuccess").Exist) then
    msgbox "in if"
    sLoop = false
Else
    msgbox "in else"
    sLoop = true
End If
Loop

其他活动...

我的 IF 条件在它得到满足之前就被执行了。有一幅正在进行的过程的图像,UFT 认为它是成功的……

注意:执行对象时还有一个图像。(观察,UFT 无法区分这两个图像)

4

3 回答 3

0

尝试使用WaitProperty方法。Exist在 app 中找到 Your 对象时会返回 true。例如

objectA.WaitProperty(optionFromObjectSpy,someSpecificContent)

optionFromObjectSpy - innerhtml 等。

于 2014-09-12T12:54:04.283 回答
0

只需查看您的代码和您的问题,我脑海中就会浮现一件事,那就是您可以在您的存在语句中使用等待时间。喜欢 :

If B().P().Image().Exist("10") Then  *'you can change the 10 second to anything you want*
    'Code here
End If

或者,您可以创建一个函数来检查浏览器的就绪状态(假设它的 IE)是否为 4。

do while ie.readystate <> 4
   Wait(1)
Loop

在对 Image 对象执行任何操作之前调用该函数。应该管用。

于 2016-04-03T11:45:28.803 回答
0

尝试类似的东西 -

While not Browser("ABC").Page("PQR").Frame("XYZ").Image("BatchSuccess").Exist
  Wait 1
  Browser("ABC").Sync
Wend
    'your code here after object A is synchronized 
     Browser("ABC").Page("PQR").Frame("XYZ").Image("BatchSuccess").Click
于 2016-04-04T08:35:45.003 回答