UFT 12.0无法使用.Exists属性同步对象



从过去几天开始,我试图同步两个执行过程中相互依赖的对象。

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无法区分这两张图像)

尝试使用WaitProperty方法Exist在应用程序中找到您的对象时将返回true。例如

objectA.WaitProperty(optionFromObjectSpy,someSpecificContent)

optionFromObjectSpy-innerhtml等

只要看看你的代码和你的问题,我就会想到一件事,那就是你可以在exist语句中使用等待时间。类似:

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

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

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

在对Image对象执行任何操作之前,请先调用函数。应该有效。

试试类似-的东西

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

最新更新