QTP在重新编写期间识别网表。但是,当在对象存储库中定义类似属性时,不会标识表

时间:2012-04-19 06:31:37

标签: qtp

您好我使用下面的代码来测试我的网页。

ExecuteFile "H:\Asma\wp_CommonFunctions.vbs"

Set Brw_Composer = CreateObjectDescription("name:=Composer - Test Accounts")
Set Page_Composer = CreateObjectDescription("title:=Composer.*,url:=http://sharepoint.btfin.com.*")
Set tbl_Composer_HostBrand = CreateObjectDescription("html tag:=TABLE,Value:=36,text:=Host Brand.*,Enable Smart Identification:=True,rows:=16")
Set tbl_Composer_Environments = CreateObjectDescription("html tag:=TABLE,Value:=32")

BT_SVP_Path= "http://sharepoint.btfin.com/it/simt/home/environments%20tech/Composer/Test%
SystemUtil.Run BT_SVP_Path

' Get the value of CAN  under 
cellValue=Browser("Composer - Test Accounts").Page("Composer - Test Accounts").WebTable("Host Brand").GetCellData(12,4)

'Open SVP ACC2 Ingress link
'Set obj = Browser(Brw_Composer).Page(Page_Composer).Webtable(tbl_Composer_Environments)
If  (Browser(Brw_Composer).Page(Page_Composer).Webtable(tbl_Composer_Environments)).Exist Then
    msgbox" success"
else 
    msgbox "failure"
End If
'****************************************************************** 
Function CreateObjectDescription(StrProperties)
    Dim objDescription 
    Dim ObjArr 
    Dim PropCount
    Dim ObjProperty
    Set objDescription=Description.Create 
    ObjArr=split(StrProperties,",") 
    For PropCount=0 to ubound(ObjArr) 
        ObjProperty=split(ObjArr(PropCount),":=")
        objDescription(ObjProperty(0)).value=ObjProperty(1) 
    Next 
    Set CreateObjectDescription=objDescription
End Function

如果在运行时指定了属性,则在运行时期间不会识别Webtables。如果我在对象存储库中添加它们的属性,则代码可以正常工作。 请帮忙。我使用IE 6测试我的webapp。

1 个答案:

答案 0 :(得分:0)

对象存储库(OR)描述与描述性编程(DP)之间的主要区别在于,OR默认为非正则表达式,DP为正则表达式。

这可能是导致行为差异的原因,如果只是添加

的话
objDescription(ObjProperty(0)).RegularExpression = False

另一个区别可能与OR有时使用的隐藏属性有关。为了查看是否是原因,请转到Tools -> Options -> Web -> Advanced并取消选中使用源索引运行(如果您还在使用QTP11 使用自动XPath标识符学习和运行)。现在看看来自OR的标识是否仍然有效。

如果OR和DP之间的行为仍然不同,那么您的身份属性可能会有所不同。