51Testing软件测试论坛

标题: 怎么执行webtable的某个 link [打印本页]

作者: galiji    时间: 2007-7-25 18:42
标题: 怎么执行webtable的某个 link
我是测试网站,因为网站的内容是变化的,所以我需要通过内容的属性来定位到该条内容,在click
我spy,查看到该条的属性是page-webtable-link.
本来我是可以通过link里的html id 直接定位到该条内容
   代码为:Browser("新浪网").Page("新浪网").Link("html id:=html id:=ctl00_ContentPlaceHolder1_ArticleShowWithTitleControl2_1_DataList1").Click
但是发现有些webtabel下的link里的html id属性是空的,所以没法直接定位.
我是想可以通过webtabe的html id,先找到该webtabel, 在找到该webtable下的某个link.
所以修改脚本为:
Browser("新浪网").Page("新浪网").WebTable("html id:=ctl00_ContentPlaceHolder1_ArticleShowWithTitleControl2_1_DataList1").ChildItem (1,1,"link",0).Click
但是执行后,提示错误: 缺少对象Browser(...).Page(...).WebTable(..).ChildItem(..)'
怎么解决这个问题?  望高手指点一下.

WebTabel的ChildItem 方法 描述 按类型和索引返回单元格中的测试对象。 语法 object.ChildItem (Row, Column, MicClass, Index) 参数 描述 object 类型 WebTable 的测试对象。 Row 必填. Long 值。 单元格所在行的行号。表中的第一行编号为 1。 Column 必填. Long 值。 单元格所在列的编号。表中的第一列编号为 1。 MicClass 必填. String 值。 对象类型。 Index 必填. Long 值。 单元格中 MicClass 类型的对象的索引。当单元格中有多个 MicClass 类型的对象时,此索引指示所需的元素。第一个对象的索引为 0。
作者: gzj_06    时间: 2007-7-25 19:59
你试试这个,我已经试过了,是行的,但不一定能解决你的问题,只能提供一个思路:
Browser("视频 - 土豆网 - 播客 个人多媒体").Page("视频 - 土豆网 - 播客 个人多媒体").WebTable("index:=0").Link("index:=0").Click
作者: galiji    时间: 2007-7-26 09:52
哥们,通过index来做肯定是可以的.
Browser("新浪网").Page("新浪网").Link("index:=200").Click
但是一个网页那么大 ,有很多频道和新闻的.我不知道我想要单击的那条新闻的index是多少.
一个一个的试(从1到200,300),是可以找到.但要试到候年马月啊。
而且我有很多类似测试的地方.
作者: gzj_06    时间: 2007-7-26 10:44
原帖由 galiji 于 2007-7-26 09:52 发表 Browser("新浪网").Page("新浪网").Link("index:=200").Click
可以在Link前面加上Webtable,那样就少了,每个table里的Link毕竟是不多的
作者: galiji    时间: 2007-7-26 10:50
加不加Webtable也没多大作用啊.因为这个webtable的index我也是不知道.还是要找
作者: xueqinzhaoqing    时间: 2007-7-26 10:53
应该这样做:
Browser("Browser").Page("Page_2").Frame("main").Link("text:="&zhiwei).Click
作者: galiji    时间: 2007-7-26 10:53
而且link的index应该不是根据其上层webtable的index在来找到吧.没有什么关联的.
作者: galiji    时间: 2007-7-26 11:02
应该这样做:
Browser("Browser").Page("Page_2").Frame("main").Link("text:="&zhiwei).Click

我试了一下,Page("Page_2").后列表框里没有出现Frame这个对象.也就是说就算说强制输入这行代码后,也是不行的.
作者: gzj_06    时间: 2007-7-26 11:07
原帖由 galiji 于 2007-7-26 10:53 发表
而且link的index应该不是根据其上层webtable的index在来找到吧.没有什么关联的.
加个Webtable后,就只在那个webtable里找对应index的Link,不会到别的webtable里找的,那么一个Webtable里的链接总数肯定是不多的,index数值不会太大
如果不加Webtable,那就在整个网页里搜索对应的Link,那个index编号是在整个页面里排的,比如下面两句代码点击的就是两个不同的链接:
Browser("视频 - 土豆网 - 播客 个人多媒体").Page("视频 - 土豆网 - 播客 个人多媒体").WebTable("index:=0").Link("index:=0").Click
Browser("视频 - 土豆网 - 播客 个人多媒体").Page("视频 - 土豆网 - 播客 个人多媒体").WebTable("index:=1").Link("index:=0").Click
作者: xueqinzhaoqing    时间: 2007-7-26 11:09
但是你可以参考我的代码格式,把link的描述对象加上不就可以了?
作者: galiji    时间: 2007-7-26 11:55
标题: 回复 #9 gzj_06 的帖子
我找到了个更好的方法,试了一下,是ok的,
Browser("新浪网").Page("新浪网").WebTable("html id:=ctl00_ContentPlaceHolder1_ArticleShowWithTitleControl2_1_DataList1").Link("index:=1").Click
因为我需要单击的那条新闻的上一层WebTable的html id 我是可以通过spy获取到的.

没有各位的指点,我是不会想到这样搞的.
谢谢各位的指点!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Thank Your!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
作者: 62369432    时间: 2010-9-26 11:35
很感谢.哈哈.这个方法很实用.




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