|
我有一个对话框,如附件:
P21下有两个子项P22和P23。如果P22和P23没有release,则会跳出这个警告。但我循环运行时,P的值都会变,比如P1(P2,P3)。而有的情况P下没有子项,比如P2下没有子项。那么就不会跳出该警告,直接进入该对话框后的另一个询问的对话框,那个对话框是点击OK的。因此我想判别首先碰到的是否是第一个对话框,点击OK,然后在进入第二个对话框。
可是由于每次运行时,P的值都会变。我取验证点时不能以整个Text为对象,否则就会认不出来。
请问是否可以只取开头的一句话,以此验证是否是第一个对话框?
我现在的做法是用Region Image抓取开头的图像来比较,如果比较下来是第一个对话框,就点OK,然后进入第二个对话框。如果比较下来不是第一个对话框,就直接进入第二个对话框。代码如下:
Result = RegionVP (CompareImage, "", "VP=Region Image;Wait=2,6;Coords=255,360,678,376")
if Result=1 then
' Ignore the part has BOM.
Window SetContext, "Caption=Microsoft Internet Explorer", ""
PushButton Click, "Text=OK"
end if
' Ignore the warning info about missing required value.
Window SetContext, "Caption=Microsoft Internet Explorer", ""
PushButton Click, "Text=OK"
但这种做法又有个缺点。如果P1的子项只有P2,那么这个警告对话框就变成P1(P2)。虽然开头的句子都是一样的,但由于句子长度变化了,开头的Region Image也不再匹配。因此,robot就误认为该对话框不是第一个,而是第二个,因此点击了OK。但是随即的第二个对话框确无法点击OK,因此出错。
因此最好的办法还是验证开头的一句话,比如:“Unreleased Component(s).” |
|