我在页面上有一个动态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。
答案 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
警告:未测试所有代码。