为以前个人笔记内容,共享一下。
QTP版本为9.2
-------------------------
以下为针对有人喜欢使用if Browser().Page().WebElement().exist(10) = True Then 做的试验。
对QTP的Exist的返回值的试验如下:
要判断的对象存在时:
1>Browser(*).Exist(0) = True
True
2>Browser(*).Exist(0) = False
False
3>Browser(*).Page(*).Exist(0) = True
True
4>Browser(*).Page(*).Exist(0) = False
False
5>Browser(*).Page(*).Link(*).Exist(0) = True
False ----这个要注意了,明明Exist返回的是True,但这条语句就是返回 False
6>Browser(*).Page(*).Link(*).Exist(0) = False
False
7>Browser(*).Page(*).Link(*).Exist(0) = "True"
True
'**********但并不说明Exist返回值为字符串,因为如下:
Exist的TypeName值为Boolean;
Exist的varType值为11;
a= "True"
MsgBox cBool(a) = True '这个则返回True
bool = Browser(*).Page(*).WebElement(*).Exist(0)
而以下两句却都返回False
MsgBox Cbool(bool) = True
MsgBox Cbool(Browser(*).Page(*).WebElement(*).Exist(0)) = True
'********************************************
要判断的对象不存在时:
1>Browser(*).Exist(0) = True
False
2>Browser(*).Exist(0) = False
True
3>Browser(*).Page(*).Exist(0) = True
False
4>Browser(*).Page(*).Exist(0) = False
True
5>Browser(*).Page(*).Link(*).Exist(0) = True
False
6>Browser(*).Page(*).Link(*).Exist(0) = False
True
[综述] QTP的Exist有问题,因此以后使用时只使用以下形式:
if Browser().Page().WebElement().exist(10) Then
。。。。
End if
或
if Not(Browser().Page().WebElement().exist(10)) Then
。。。。
End if