TA的每日心情 | 开心 2016-2-27 08:48 |
---|
签到天数: 2 天 连续签到: 1 天 [LV.1]测试小兵
|
不知道朋友们在使用WebTable 的ChildItem时遇到过麻烦?我是有过,曾经有一段使用拒绝使用ChildItem函数(当然是怕出错了),然后使用别的方法来代替。今天帮同事解决一个脚本的通用性时,终于把此问题解决了。
根据WebElement 处在WebTable 的行数Row和列数Column,可以使用GetCellData(Row, Column)可以得到需要的数据,可是使用ChildItem (Row, Column, “WebElement”, 0)时就得不到需要的Object呢?
例如下面的代码
Set obj = Browser("***").Page("***").Frame("Frame").WebTable("***").ChildItem(4,2,"WebElement",0)
Print obj.GetROProperty ("outerhtml")
可是却得不到我们需要的outerhtml的值。如果改变了Row和Column的值,我们经常又会得到一个错误 Object required, 这说明obj 没有返回值。
后来查阅QTP Help,发现WebTable有一个ChildItemCount 方法,于是我使用ChildItemCount (Row, Column, “WebElement”) 得到在的行数Row和列数Column上有多少个WebElement。 然后使用下面的代码验证,如果使用ChildItem (Row, Column, MicClass, Index), 我们需要操作的Object的Index的值到底是多少:
For inter = 0 To Browser("***").Page("***").Frame("Frame").WebTable("***").ChildItemCount (Row, Column, “WebElement”) - 1
Set obj = Browser("***").Page("***").Frame("Frame").WebTable("***").ChildItem(4,2,"WebElement", inter)
Print obj.GetROProperty ("outerhtml")
Next
当然,对于ChildItem函数里面的Row和 Column的值,一般情况下,使用GetCellData(Row, Column)里面的Row和 Column就可以得到。
这样我们就可以通过ChildItem 得到WebTable里面所有的Object,不需要添加大量的Object,脚本的通用性自然就增强了。
[ 本帖最后由 walker1020 于 2009-6-18 18:11 编辑 ] |
|