sally_520xue 发表于 2008-10-22 15:49:50

自己拷了一段参数化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
Foreach 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:56

如果只是为了找出哪个符合的话
dim len1
Set objLinks=Browser("xxxx").Page("xxx").Object.links
For i=0   toobjLinks.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:58

不对,我不是想找出符合的,而是让QTP自动跑网页,点击各个城市的链接,然后再自动关闭网页,所以需要参数化link。


今天有雾,你的那段代码我拷贝到程序里,还是死循环。帮忙看看,是怎么回事啊?

今天有雾 发表于 2008-10-22 17:16:20

我没有什么问题,也不会出现死循环呀,最好是看一下取的tagname倒是什么内容呀

[ 本帖最后由 今天有雾 于 2008-10-22 17:24 编辑 ]

sally_520xue 发表于 2008-10-22 17:24:48

改成innertext也不行,我觉得是不是我的代码逻辑有问题啊,如果想实现我想实现的这个功能,不能这样参数化link啊?

今天有雾 发表于 2008-10-22 17:37:54

回复 5# 的帖子

没有死循环,只是一共有360多个链接,时间比较长吧

sally_520xue 发表于 2008-10-22 17:44:13

我记得QTP有个抓取网页链接的功能,以前用过,抓出来一百多个链接,就是单单一个网页,现在不记得怎么用了,我找找

假装不在 发表于 2008-10-22 17:45:16

:L
你没发现你自己在绕圈子吗?
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:41

哈哈,应该还没有运行到这一步呢,前面的死循不知道怎么回事

假装不在 发表于 2008-10-22 17:58:13

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:10

谢了,你的代码的确是对的,但是有些东西我觉得我没有搞明白,呵呵,多谢多谢,我回家要接着研究。。。
页: [1]
查看完整版本: 自己拷了一段参数化link的代码,改了一下,但是不能执行。请大家帮忙看看