我在QTP中使用Webtable ChildItem方法来设置WebEdit和WebCheckbox并且存在以下问题
-
在第一行中,它正确设置第二列(WebEdit)和第四列(WebCheckbox)的值,但对于第三列(WebEdit),它设置值,一旦移动到第四列,就将其重置为旧值 .
-
同样对于第二行以上,它给出了错误
需要对象:'WebTable(...) . ChildItem(...)'
请指导我这件事 .
这是我正在使用的代码:
Set objFrame = Browser("Browser").Page("Page").Frame("Frame")
If objFrame.WebTable("WebTable").Exist(0) Then
rowct = objFrame.WebTable("WebTable").RowCount
isFound = 0
For i= 2 To rowct
strText = objFrame.WebTable("WebTable").GetCellData(i,1)
index = i-2
If Instr(strText,strType) > 0 Then
objFrame.WebTable("WebTable").ChildItem(i,2,"WebEdit",index).Set strNumber
objFrame.WebTable("WebTable").ChildItem(i,3,"WebEdit",index).Set strNumber2
objFrame.WebTable("WebTable").ChildItem(i,4,"WebCheckBox",index).Set strPreferred
isFound = 1
Exit For
End If
Next
If isFound = 0 Then
rowct = objFrame.WebTable("WebTable").RowCount
row= rowct + 1
index = row - 2
objFrame.WebButton("Button").Click
objFrame.WebTable("WebTable").ChildItem(row,1,"WebList",index).Select strType
objFrame.WebTable("WebTable").ChildItem(row,2,"WebEdit",index).Set strNumber
objFrame.WebTable("WebTable").ChildItem(row,3,"WebEdit",index).Set strNumber2
objFrame.WebTable("WebTable").ChildItem(row,4,"WebCheckBox",index).Set strPreferred
End If
End If
1 回答
这是导致错误的原因:
WebTable上的ChildItem方法的第四个参数是该行/列组合上返回的子项目(在本例中为WebEdit)的索引 .
那么,发生了什么:在第一个找到内容的行(nr.2),索引变为0,但是在for循环的第二次迭代中,索引变为1.QTP在该行上找不到第二个WebEdit对象/列并将返回错误 .
因此,使用
index = 0
来解决这个问题 .对于第一个问题,如果更改顺序会发生什么:首先设置WebCheckBox,然后设置第二个WebEdit:
你能说出现在发生了什么吗?