0

我在 QTP 中使用 Webtable ChildItem 方法来设置 WebEdit 和 WebCheckbox 并且有以下问题

  1. 在第一行中,它正确设置了第二列(WebEdit)和第四列(WebCheckbox)的值,但是对于第三列(WebEdit),它设置了值,并且一旦移动到第四列,就会将其重置为旧值。

  2. 同样对于第二行开始,它会给出错误

    所需对象:'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
4

1 回答 1

1

这是您收到错误的原因:

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
    ...

WebTable 上 ChildItem 方法的第四个参数是该行/列组合上返回的子项(在本例中为 WebEdit)的索引。
那么,发生了什么:在找到的第一个包含内容的行(nr.2)上,索引变为 0,但在 for 循环的第二次迭代中,索引变为 1。QTP 在该行上找不到第二个 WebEdit 对象/列,并将返回错误。

所以,index = 0用来解决那个。

对于您的第一个问题,如果您更改顺序会发生什么:首先设置 WebCheckBox,然后设置第二个 WebEdit:

objFrame.WebTable("WebTable").ChildItem(i,2,"WebEdit",index).Set strNumber
objFrame.WebTable("WebTable").ChildItem(i,4,"WebCheckBox",index).Set strPreferred
objFrame.WebTable("WebTable").ChildItem(i,3,"WebEdit",index).Set strNumber2

你能告诉现在发生了什么吗?

于 2012-09-19T12:13:35.907 回答