从最近几天开始,我试图同步两个相互依赖的对象来执行它们。
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无法区分这两个图像)
答案 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++;
}