51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 2656|回复: 13
打印 上一主题 下一主题

[求助] webtable嵌套的字段取值问题,参考前贴无助后发起

[复制链接]

该用户从未签到

1#
发表于 2009-7-17 10:08:30 | 显示全部楼层
呵呵,你这个是用什么工具语言开发的系统?我是碰到用JAVA开发的系统,也有跟你一样的问题,根本无法通过webtable来操作。于是我绕了个弯路,我先把页面上的元素组织到datatable中,然后再操作datatable就行了。组织的方法跟你相似,也是通过childobjects()方法,不过我成功了,嘿嘿。
还有个方法,跟你推荐下假兄的文章 http://www.51testing.com/?174770 ... e_itemid_95404.html ,你可以通过getElementsByTagName方法来尝试一下。

下面是我写的函数,看看有没有参考价值

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
回复 支持 反对

使用道具 举报

该用户从未签到

2#
发表于 2009-7-17 12:38:26 | 显示全部楼层
简单实用最好
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2009-7-21 10:05:42 | 显示全部楼层
msgbox Browser("Browser").Page("age").Object.GetElementsByTagName("td").length

这个你再加上一层webtable看下,Browser("Browser").Page("age").webtable(***).Object.GetElementsByTagName("td").length
这个方法我也没有用过,假兄应该多有研究,可以直接找他帮你解决下问题。
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-6-3 09:48 , Processed in 0.065946 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表