51Testing软件测试论坛

标题: 如何取WebTable的单元格? [打印本页]

作者: xuben    时间: 2009-9-10 12:07
标题: 如何取WebTable的单元格?
这几天在做一个大量数据输入的操作——按顺序将dtGlobalSheet里20行30列的数据一个一个复制到一个20行30列的WebTable表里。
一开始录入数据时:
'第一行第一列
Browser("XXX").Page("XXX").Frame("XXX").WebEdit("ctl00$cph$grd_P2009001_1").Set "11"
'第一行第二列
Browser("XXX").Page("XXX").Frame("XXX").WebEdit("ctl00$cph$grd_P2009001_2").Set "12"
'第二行第一列
Browser("XXX").Page("XXX").Frame("XXX").WebEdit("ctl00$cph$grd_P2009002_1").Set "21"

如果只修改单元格,不但麻烦,而且会遇到无法识别的问题,如:
'直接写第六行第一列,但并没有录制第六行,会提示该对象无法识别
Browser("XXX").Page("XXX").Frame("XXX").WebEdit("ctl00$cph$grd_P2009006_1").Set "61"

所以,我决定采用WebTable的方式进行,我的方法如下:
Set w_WebTable = Browser("XXX").Page("XXX").Frame("XXX").WebTable("XXX")
For I = 1 To w_WebTable.RowCount
  For J =1 To w_WebTable.ColumnCount(I)
     '此行希望获取WebTable下的该单元格
     Set CellValue = w_WebTable.ChildItem(I, J, "WebEdit" , 0 )
     '此行希望将dtGlobalSheet中的值赋给该单元格
     CellValue.Set DataTable("line"&J, dtGlobalSheet)
  Next
Next

但是获取单元格有问题,不知道该怎么改才能满足需求,希望牛人指点!万分感谢!
作者: 新人请多关照    时间: 2009-9-10 12:26
datatable.GetSheet("Global").GetParameter(line).ValueByRow(row)
作者: xuben    时间: 2009-9-10 13:09
标题: 回复 2# 的帖子
呵呵,不好意思,没明白你的意思,麻烦解释一下,谢谢!
作者: 风雪夜归人    时间: 2009-9-10 14:45
strRowCount = Browser("Central Manager - Web").Page("Central Manager - Web").WebTable("Host Address").RowCount

'Browser("Central Manager - Web").Page("Central Manager - Web").WebTable("Host Address").HighLight

For intRow = 1 To strRowCount

        strColCount = Browser("Central Manager - Web").Page("Central Manager - Web").WebTable("Host Address").ColumnCount(intRow)

        For intCol = 1 To strColCount
               
'                Print Browser("Central Manager - Web").Page("Central Manager - Web").WebTable("Host Address").GetCellData(intRow, intCol)
                Browser("Central Manager - Web").Page("Central Manager - Web").WebTable("Host Address").ChildItem(intRow,intCol,"WebEdit",0).Set DataTable.GlobalSheet.GetParameter(line).ValueByRow( intCol+(intRow-1)*strColCount)
        Next

Next


应该可以满足你的要求~当然,前提是你的global数据表里面的数值和你需要赋值的webedit一样,而且,你的webtable里面所有的元素都是webedit


你可以把下面的复制进txt,然后改为a.html,然后试试效果:


========================================================
<Table><TR><td><input></input></td>
<td><input></input></td>
<td><input></input></td>
<td><input></input></td>
<td><input></input></td>
<td><input></input></td>
</TR>
<TR><td><input></input></td>
<td><input></input></td>
<td><input></input></td>
<td><input></input></td>
<td><input></input></td>
<td><input></input></td>
</TR>
<TR><td><input></input></td>
<td><input></input></td>
<td><input></input></td>
<td><input></input></td>
<td><input></input></td>
<td><input></input></td>
</TR>
<TR><td><input></input></td>
<td><input></input></td>
<td><input></input></td>
<td><input></input></td>
<td><input></input></td>
<td><input></input></td>
</TR></Table>
============================================================

[ 本帖最后由 风雪夜归人 于 2009-9-10 16:03 编辑 ]
作者: xuben    时间: 2009-9-11 11:14
标题: 回复 4# 的帖子
谢谢,运行成功了!
非常感谢!




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2