Browser("TCC Control").Page("TCC Control").WebList("userName").Select "ADMIN"
Browser("TCC Control").Page("TCC Control").WebEdit("password").SetSecure "4d54dd6a5e4979de98068a8fee420eb0936a"
Browser("TCC Control").Page("TCC Control").WebButton("登 录").Click
Browser("TCC Control_2").Dialog("Windows Internet Explorer").WinButton("是(Y)").Click
Browser("TCC Control").Page("TccBus System Esb").Frame("menuFrame").Link("方法访问日志管理").Click
Browser("TCC Control").Page("TccBus System Esb").Frame("bodyFrame").WebEdit("startTime").Set "2011-01-04 00:00:00"
Browser("TCC Control").Page("TccBus System Esb").Frame("bodyFrame").WebEdit("endTime").Set "2011-01-26 00:00:00"
Browser("TCC Control").Page("TccBus System Esb").Frame("bodyFrame").WebButton("查询").Click
Set obj = Browser("TCC Control").Page("TccBus System Esb").Frame("query_frame").WebTable("WebTable")
'获取表格的行数
RowCount =obj.RowCount
For I = 2 To RowCount
For J = 1 To obj.ColumnCount(I)
Dim ExampleName
'获取表格中的某个单元格的数据
ExampleName = obj.GetCellData(I,J)
Msgbox ExampleName
Next
Next
Browser("TCC Control").Page("TccBus System Esb").Sync
Browser("TCC Control").Close
Browser("TCC Control").Dialog("Windows Internet Explorer").WinButton("确定").Click
但是问题是:“方法访问日志管理”界面的表格,qtp的函数GetCellData(I,J)
会报出“未指定的错误”,代码本身应该并没有问题并没有问题…
但不清楚怎么解决,前提是GetCellData(I,J)的I和J都是没有问题的,obj.RowCount和obj.ColumnCount(I)取得也都没有问题......我都开始怀疑是否是QTP本身的一个BUG,目前使用的QTP版本是9.2,操作系统使用的是Microsoft Windows XP Professional 版本 2002 Service Pack 3 ,ie版本:7.0.5730.13......
本来想通过
set webtable= Description.Create()
webtable("html tag").Value = "TABLE",但是一碰到
webtable("html tag").Value = "TABLE"
就一直报出:General run error的错误
然后想用
NUM = Browser("TCC Control").Page("TccBus System Esb").Frame("query_frame").ChildObjects().Count()
for i = 1 to num
.....
next
来定位我想要的那个table,但是到
NUM = Browser("TCC Control").Page("TccBus System Esb").Frame("query_frame").ChildObjects().Count()
就报错了...作者: lilinuo_2011 时间: 2011-2-15 11:07
但是,有一点,我仍然比较困惑的是既然
RowCount和obj.ColumnCount(I)都能取正确,说明这个obj是识别正常的,但是为什么到它要用到getcelldata()函数的时候却发生了问题??作者: lilinuo_2011 时间: 2011-2-15 11:20
具体失败的代码如下:
Dim oWebTableDesc
Set oWebTableDesc = Description.Create()
oWebTableDesc("html tag").value = "TABLE"
Set oTableList = Browser("TCC Control").Page("TccBus System Esb").Frame("query_frame").ChildObjects(oWebTableDesc)
for i=0 to oTableList.Count()-1
print oTRAndTDList (i).GetROProperty("html tag")
Next作者: lilinuo_2011 时间: 2011-2-15 11:42
Set obj = Browser("TCC Control").Page("TccBus System Esb").Frame("query_frame").WebTable("WebTable")
index = obj.GetROProperty("source_index")
msgbox index
.....
Dim ExampleName
Set objReal = Browser("TCC Control").Page("TccBus System Esb").Frame("query_frame").WebTable("source_index:=" & index)
For I = 2 To RowCount
For J = 1 To obj.ColumnCount(I)
'获取表格中的某个单元格的数据
ExampleName = objReal.GetCellData(I,J)
Msgbox ExampleName
Next
Next
但是我要getcelldata的这个表格,我用spy去获取时properties和methods都是空,是不是这个也会造成qtp在识别对象时的问题?????
[attach]71412[/attach]作者: BesTesTer 时间: 2011-2-15 12:40
Object Spy定位到你要的那张表,properties和methods都是空?截个图看看.作者: lyscser 时间: 2011-2-15 13:20
你为啥非要用html tag这个属性?micclass加上text不能定位么?
webtable("html tag").Value = "TABLE",但是一碰到
webtable("html tag").Value = "TABLE"作者: shingo0109 时间: 2011-2-15 13:56
我找了个我这边的环境试了下, 这么写可以输出表格上的value的, 代码如下:
Set obj1= Browser("CreationTime:=0").Page(":=").Frame("name:=businessfrm").WebTable("html tag:=TABLE", "Index:=1")
For i=2 to obj1.RowCount
For j=1 to obj1.ColumnCount(i)
aaa=obj1.GetCellData(i,j)
msgbox "aaa="&aaa
Next
Next
不过spy看的时候property和methods都有的, 不知LZ的情况为啥看到的是空的作者: lilinuo_2011 时间: 2011-2-15 14:15
Set obj = Browser("TCC Control").Page("TccBus System Esb").Frame("query_frame").WebTable("WebTable")
micclass = obj.GetROProperty("micclass")
text = obj.GetROProperty("text")
....
Dim ExampleName
Set objReal = Browser("TCC Control").Page("TccBus System Esb").Frame("query_frame").WebTable("micclass:="&micclass,"text:="&text)
For I = 2 To objReal.RowCount
For J = 1 To objReal.ColumnCount(I)
'获取表格中的某个单元格的数据
ExampleName = objReal.GetCellData(I,J)
Msgbox ExampleName
NEXT
NEXT
结果在For I = 2 To objReal.RowCount
报出如下的错误:
Cannot identify the object "[ WebTable ]" (of class WebTable). Verify that this object's properties match an object currently displayed in your application.
Line (59): "For I = 2 To objReal.RowCount".作者: shingo0109 时间: 2011-2-15 14:33
LZ还是需添加index来识别吧作者: lilinuo_2011 时间: 2011-2-15 15:20
Set obj = Browser("TCC Control").Page("TccBus System Esb").Frame("query_frame").WebTable("WebTable")
index = obj.GetROProperty("index")
msgbox index
.....
Dim ExampleName
Set objReal = Browser("TCC Control").Page("TccBus System Esb").Frame("query_frame").WebTable("index:=" & index)
For I = 2 To RowCount
For J = 1 To obj.ColumnCount(I)
'获取表格中的某个单元格的数据
ExampleName = objReal.GetCellData(I,J)
Msgbox ExampleName
Next
Next
是无效的,msgbox index
输出的是空...我怀疑用index是否有效...我连x/y都尝试过了,也无效,x=0,y=0作者: shingo0109 时间: 2011-2-15 15:32 回复 15#lilinuo_2011
Set obj = Browser("TCC Control").Page("TccBus System Esb").Frame("bodyFrame_2").WebTable("html id:=_table3")
'获取表格的行数
RowCount =obj.RowCount
For I = 2 To RowCount
For J = 1 To obj.ColumnCount(I)
'获取表格中的某个单元格的数据
ExampleName = obj.GetCellData(5,5)
msgbox ExampleName
Next
Next
Browser("TCC Control").Page("TccBus System Esb").Frame("bodyFrame_2").Link("下页").Click
Browser("TCC Control").Page("TccBus System Esb").Sync
Browser("TCC Control").Close
Browser("TCC Control").Dialog("Windows Internet Explorer").WinButton("确定").Click