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

时间:2014-09-11 07:36:27

标签: testing automated-tests qtp hp-uft

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

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

3 个答案:

答案 0 :(得分:0)

尝试使用 WaitProperty 方法。 存在会在应用中找到您的对象时返回true。 例如

  

objectA.WaitProperty(optionFromObjectSpy,someSpecificContent)

optionFromObjectSpy - innerhtml等。

答案 1 :(得分:0)

只要查看你的代码和你的问题,我脑子里就会有一件事就是你可以在你现有的陈述中使用等待时间。 喜欢:

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对象执行任何操作之前调用该函数。应该工作。

答案 2 :(得分:0)

尝试类似 -

$n = 1;
while($srow = $scan_res->fetch(PDO::FETCH_ASSOC)){
    if($n % 2 != 0)
        $report .= "<tr ".$row_style.">";

    $report .= "<td><div class='nosplit'>".$n."</div></td>
              <td><div class='nosplit'>".$srow['barcode']."</div></td>
              <td><div class='nosplit'>".$product_nd_short."</div></td>
              <td style='text-align:center;'><div class='nosplit'>".$rounded_qty."</div></td>
              <td style='text-align:center;'><div class='nosplit'>".$cur_symbol.$cn.$mcost_estimated."</div></td>
              <td style='text-align:center;'><div class='nosplit'>".((strlen($srow['stocktake_staff_name'])>16)? substr($srow['stocktake_staff_name'], 0, 16)."..." : $srow['stocktake_staff_name'])."</div></td>
              <td style='text-align:center;'><div class='nosplit'>".$dt->format('H:i:s')."</div></td>";
    if($n % 2 == 0)
        $report .= "</tr>";
    $n++;
}