代码如下:
Dim i,j,n,m,k,num,obj,webobj,webtbl
Set webtbl=description.Create
webtbl("micclass").value="WebTable"
webtbl("html tag").Value = "TABLE"
set webobj=Browser("Browser").Page("Browser").Frame("设备信息加载").ChildObjects(webtbl)
num=webobj.count
'居然有10个table,后来发现很多空表
msgbox "tables sum:" &num
For j=0 To num - 1
Set obj=webobj(j)
m=obj.RowCount
For i=1 to m
n= obj.ColumnCount (i)
'统计显示每个table下各有多少的行和列
msgbox "table:"& j +1 &"rows:" & m &"columns:" & n
For k = 1 to n
'显示每个table里每个cell的值
msgbox "table:"& j +1 & "row:"& i &"column:" & k &"cell:"& obj.GetCellData (i,k)
Next
Next
Next
Function TechnicianListBuild()
'构建********,返回TechnicianList的Datatable表
'****************************
Set TechRowNum=description.Create()
TechRowNum("class").value="tableRowCount"
TechRowNum("html tag").value="TD"
Set TechRowNumCollection=MainPage.Frame("name:=mainIframe").ChildObjects(TechRowNum)
' msgbox TechRowNumCollection.count
'****************************
Set TechDetail=Description.Create()
TechDetail("class").value=""
TechDetail("html id").value=""
TechDetail("outerhtml").value="\<TD\>.*\<\/TD\>"
TechDetail("html tag").value="TD"
TechDetail("outerhtml").RegularExpression=True
Set TechDetailCollection=MainPage.Frame("name:=mainIframe").ChildObjects(TechDetail)
' MsgBox TechDetailCollection.count
If TestDataSet.Exists("TechnicianList") Then
TestDataSet.Remove("TechnicianList")
Datatable.DeleteSheet("TechnicianList")
End If
Datatable.AddSheet("TechnicianList")
Datatable.GetSheet("TechnicianList").AddParameter "序号",""
Datatable.GetSheet("TechnicianList").AddParameter "编号",""
Datatable.GetSheet("TechnicianList").AddParameter "姓名",""
Datatable.GetSheet("TechnicianList").AddParameter "身份证号",""
Datatable.GetSheet("TechnicianList").AddParameter "籍贯",""
Datatable.GetSheet("TechnicianList").AddParameter "联系电话",""
'****************************
For i= 0 to TechDetailCollection.count
If TechDetailCollection.item(i).Getroproperty("innertext")<>"" and i>0 Then
techDetailStarNo=i
Exit for
End If
Next
For i=1 To TechRowNumCollection.Count
Datatable.GetSheet("TechnicianList").SetCurrentRow(i)
Datatable.GetSheet("TechnicianList").GetParameter("序号").Value=TechRowNumCollection.Item(i-1).Getroproperty("innertext")
Datatable.GetSheet("TechnicianList").GetParameter("编号").Value=TechDetailCollection.Item(techDetailStarNo).Getroproperty("innertext")
Datatable.GetSheet("TechnicianList").GetParameter("姓名").Value=TechDetailCollection.Item(techDetailStarNo+1).Getroproperty("innertext")
Datatable.GetSheet("TechnicianList").GetParameter("身份证号").Value=TechDetailCollection.Item(techDetailStarNo+2).Getroproperty("innertext")
Datatable.GetSheet("TechnicianList").GetParameter("籍贯").Value=TechDetailCollection.Item(techDetailStarNo+3).Getroproperty("innertext")
Datatable.GetSheet("TechnicianList").GetParameter("联系电话").Value=TechDetailCollection.Item(techDetailStarNo+4).Getroproperty("innertext")
techDetailStarNo=techDetailStarNo+5
Next
Datatable.ExportSheet "D:\Technicianlist.xls","Technicianlist"
Call TestDataSet.Add("TechnicianList","")
Set TechRowNum=Nothing
Set TechRowNumCollection=Nothing
Set TechDetail=Nothing
Set TechDetailCollection=Nothing
End Function作者: lpj1911 时间: 2009-7-17 11:15
谢谢 我先去尝试下。 有情况再来请教作者: lpj1911 时间: 2009-7-17 11:20
也就是说getElementsByTagName可以把嵌套几层table的element取到咯?我还是先去看哈help,那个最直接。呵呵
随便说下 这个系统用php做的,作者: nbkhic 时间: 2009-7-17 11:54
嵌套了那么多层table,呵呵,布局够复杂的。
我就是天天在跟嵌套的table做斗争,其实想获取某一个字段很简单,用getElementById就可以了。一般检查的字段都是很特殊的,都会有id。
当然通过getElementsByTag用循环遍历也可以,而且不复杂。作者: blueeagle9999 时间: 2009-7-17 12:38
简单实用最好作者: lpj1911 时间: 2009-7-17 18:16
回复 2楼