UFT:如何在动态Web表格中标识WebEdit

时间:2018-11-29 04:17:21

标签: hp-uft

我在页面上有一个动态Web表,在其中必须逐个设置值。有一个按钮可以将webedit添加到该表中。当我单击该按钮时,将添加一个webedit,然后我必须在其中设置一个值。对于不同的值,我必须重复相同的过程。

所有Web编辑具有相同的属性,只是名称不同(例如

"name:=\$ABC_1\$ABCList\$l1\$ABCName" "name:=\$ABC_1\$ABCList\$l2\$ABCName" "name:=\$ABC_1\$ABCList\$l3\$ABCName" . . . "name:=\$ABC_1\$ABCList\$l200\$ABCName"

我无法识别新添加的Webedit。

1 个答案:

答案 0 :(得分:0)

如果name属性中存在一致性,则可以使用该属性来标识对象。例如,如果它包含一个计数器,则可以执行类似操作。

counter = 1 
Browser("B").Page("P").WebButton("B").Click
Browser("B").Page("P").WebEdit("name:=\$ABC_1\$ABCList\$l" & counter & "\$ABCName").Set theValue
counter = counter + 1 ' repeat

下一个最佳选择是,如果将新的WebEdit添加到先前的值之后,在这种情况下,您可以使用index属性

counter = 1   
Browser("B").Page("P").WebButton("B").Click
Browser("B").Page("P").WebEdit("name:=\$ABC_1\$ABCList\$l.*", "index:=" & counter).Set theValue
counter = counter + 1 ' repeat

最坏的情况(name不一致,index也不一致),您可以存储现有的WebEdit名称,并查看新名称。

Set seenEdits = CreateObject("Scripting.Dictionary")

Function GetNewEdit()
    Set desc = Description.Create()
    desc("name").Value = "\$ABC_1\$ABCList\$l.*"
    Set edits = Browser("B").Page("P").ChildObjects(desc)
    For i = 0 to edits.Count() - 1
        name = edits(i).GetROProperty("name")
        If Not seenEdits.Exists(name) Then
            seenEdits.Add name, True
            Set GetNewEdit edits(i)
            Exit Function
        End If
    Next
End Function

Browser("B").Page("P").WebButton("B").Click
GetNewEdit().Set theValue

警告:未测试所有代码。