uft中的参数数量错误或属性分配无效

时间:2015-09-24 07:48:35

标签: vb.net qtp hp-uft

先谢谢:)我可以使用uft 12.2中的columncount方法获取行数而不是列数。它简单会在AccNoCol=AccNoTB.ColumnCount错误的参数数量或无效的属性赋值时抛出错误:'AccNoTB.ColumnCount'。我知道列数是8,但它们是动态的&在脚本中对列计数进行硬编码存在风险。你能指出正确吗?再次感谢

Set AccNoTB=browser("title:=.*").page("title:=.*").webtable("column names:=;Account No;Account Name;Billing City;Website;Phone;Assigned To;Action","cols:=8")

AccNoRow=AccNoTB.RowCount

AccNoCol=AccNoTB.ColumnCount

AccTBvalue=AccNoTB.GetCellData(AccNoRow,AccNoCol)

MsgBox AccTBvalue`

3 个答案:

答案 0 :(得分:0)

WebTable中每行的列数可能不同,因此ColumnCount需要一个参数来指定UFT您感兴趣的行列数。

A row can have
<table border=1>
  <tr><td>One</td></tr>
  <tr><td>or</td><td>two</td></tr>
  <tr><td>or</td><td>even</td><td>more</td></tr>
</table>
Columns

答案 1 :(得分:0)

获取 的两种简单方法。

请注意,我已从对象描述中删除了"cols:=8",假设WebTablt已被column names识别。

Set AccNoTB=browser("title:=.*").page("title:=.*").webtable("column names:=;Account No;Account Name;Billing City;Website;Phone;Assigned To;Action")

获得行计数的两种方法

AccNoRow = AccNoTB.GetROProperty("rows")    '<-- 1
AccNoRow = AccNoTB.RowCount                 '<-- 2

获得列数的两种方法

AccNoCol = AccNoTB.GetROProperty("cols")    '<-- 1
iRow = 2
AccNoCol = AccNoTB.ColumnCount(iRow)        '<-- 2 This way is useful when you have different columns in different rows.

现在让我们举一个@Motti给出的例子。在这种情况下,我们将运行一个循环并获取列数。

Set AccNoTB=browser("title:=.*").page("title:=.*").webtable("column names:=;Account No;Account Name;Billing City;Website;Phone;Assigned To;Action")
AccNoRow = AccNoTB.RowCount

For i = 1 To AccNoRow
    AccNoCol = AccNoTB.ColumnCount(i)
    Print "Row " & i & " has " && " column/s."
Next

输出:

Row 1 has 1 column/s.
Row 2 has 2 column/s.
Row 3 has 3 column/s.

答案 2 :(得分:-1)

set a=Browser("OrangeHRM").Page("OrangeHRM_2").WebTable("micclass:=WebTable","html tag:=TABLE")

co=a.RowCount

MsgBox co
'set b=Browser("OrangeHRM").Page("OrangeHRM_2").WebTable("micclass:=WebTable","html tag:=TABLE")

col=b.ColumnCount

MsgBox col