51Testing软件测试论坛

标题: 自己拷了一段参数化link的代码,改了一下,但是不能执行。请大家帮忙看看 [打印本页]

作者: sally_520xue    时间: 2008-10-22 15:49
标题: 自己拷了一段参数化link的代码,改了一下,但是不能执行。请大家帮忙看看
因为在研究参数化link的问题,所以拷贝了一段代码,改了一下,把IE的首页改成了bj.ganji.com,但是运行的时候,QTP始终在for each那段循环语句里上下打晃,变成了死循环。
    我的本意是想点击更多城市后,让QTP自己跑脚本,挨个点击各个城市的链接,但是现在不知道该怎么改了,大家帮忙看看呗,谢谢了!


    代码如下:

Dim eleLink
Dim i,j,Links()

SystemUtil.Run "C:\Program Files\Internet Explorer\iexplore.exe","","C:\Documents and Settings\Administrator","open"
Browser("北京分类信息-赶集网").Page("北京分类信息-赶集网").Link("更多城市").Click
wait 5
'Browser("北京分类信息-赶集网").Page("全国分类信息 - 赶集网").Link("上海").Click
'Browser("北京分类信息-赶集网").Page("上海分类信息-赶集网").Sync

Set objLinks=Browser("北京分类信息-赶集网").Page("北京分类信息-赶集网").Object.links

i=0
For  each eleLink In objLinks
    If Ucase(eleLink.tagname)="上海" Then
         Links(i)=eleLink.InnerText
    i=i+1
    End If
Next

For j=0 To i
    Browser("北京分类信息-赶集网").Page("北京分类信息-赶集网").Link("InnerText:=" & Links(j)).Click
    Browser("Browser").Back
Next
Browser("北京分类信息-赶集网").Close
作者: 今天有雾    时间: 2008-10-22 16:59
如果只是为了找出哪个符合的话
dim len1
Set objLinks=Browser("xxxx").Page("xxx").Object.links
For i=0   to  objLinks.length-1
               If objLinks(i).tagName="上海" Then
                  len1=len1+1
    End If
Next

类似这样的写法也可以的哇

[ 本帖最后由 今天有雾 于 2008-10-22 17:23 编辑 ]
作者: sally_520xue    时间: 2008-10-22 17:11
不对,我不是想找出符合的,而是让QTP自动跑网页,点击各个城市的链接,然后再自动关闭网页,所以需要参数化link。


今天有雾,你的那段代码我拷贝到程序里,还是死循环。帮忙看看,是怎么回事啊?
作者: 今天有雾    时间: 2008-10-22 17:16
我没有什么问题,也不会出现死循环呀,最好是看一下取的tagname倒是什么内容呀

[ 本帖最后由 今天有雾 于 2008-10-22 17:24 编辑 ]
作者: sally_520xue    时间: 2008-10-22 17:24
改成innertext也不行,我觉得是不是我的代码逻辑有问题啊,如果想实现我想实现的这个功能,不能这样参数化link啊?
作者: 今天有雾    时间: 2008-10-22 17:37
标题: 回复 5# 的帖子
没有死循环,只是一共有360多个链接,时间比较长吧
作者: sally_520xue    时间: 2008-10-22 17:44
我记得QTP有个抓取网页链接的功能,以前用过,抓出来一百多个链接,就是单单一个网页,现在不记得怎么用了,我找找
作者: 假装不在    时间: 2008-10-22 17:45

你没发现你自己在绕圈子吗?
Set objLinks=Browser("北京分类信息-赶集网").Page("北京分类信息-赶集网").Object.links
for i=0 to objLinks.length
  Set objLinks=Browser("北京分类信息-赶集网").Page("北京分类信息-赶集网").Object.links
   objLinks(i).click
  Browser("Browser").Back
next
作者: 今天有雾    时间: 2008-10-22 17:53
哈哈,应该还没有运行到这一步呢,前面的死循不知道怎么回事
作者: 假装不在    时间: 2008-10-22 17:58
Set objLinks=Browser("北京分类信息-赶集网").Page("北京分类信息-赶集网").Object.links
for i=0 to objLinks.length-1
  if objLinks(i).tagname="上海" then    '想不通你的tagname?!节点名字?!是一个上海二字...但我还是照抄。
    Set objLinks=Browser("北京分类信息-赶集网").Page("北京分类信息-赶集网").Object.links
    objLinks(i).click
    Browser("Browser").Back
end if
next
作者: sally_520xue    时间: 2008-10-22 18:04
谢了,你的代码的确是对的,但是有些东西我觉得我没有搞明白,呵呵,多谢多谢,我回家要接着研究。。。




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