51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1953|回复: 10
打印 上一主题 下一主题

[原创] 自己拷了一段参数化link的代码,改了一下,但是不能执行。请大家帮忙看看

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2008-10-22 15:49:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
因为在研究参数化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
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2008-10-22 16:59:56 | 只看该作者
如果只是为了找出哪个符合的话
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 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2008-10-22 17:11:58 | 只看该作者
不对,我不是想找出符合的,而是让QTP自动跑网页,点击各个城市的链接,然后再自动关闭网页,所以需要参数化link。


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

使用道具 举报

该用户从未签到

4#
发表于 2008-10-22 17:16:20 | 只看该作者
我没有什么问题,也不会出现死循环呀,最好是看一下取的tagname倒是什么内容呀

[ 本帖最后由 今天有雾 于 2008-10-22 17:24 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2008-10-22 17:24:48 | 只看该作者
改成innertext也不行,我觉得是不是我的代码逻辑有问题啊,如果想实现我想实现的这个功能,不能这样参数化link啊?
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2008-10-22 17:37:54 | 只看该作者

回复 5# 的帖子

没有死循环,只是一共有360多个链接,时间比较长吧
回复 支持 反对

使用道具 举报

该用户从未签到

7#
 楼主| 发表于 2008-10-22 17:44:13 | 只看该作者
我记得QTP有个抓取网页链接的功能,以前用过,抓出来一百多个链接,就是单单一个网页,现在不记得怎么用了,我找找
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2008-10-22 17:45:16 | 只看该作者

你没发现你自己在绕圈子吗?
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
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2008-10-22 17:53:41 | 只看该作者
哈哈,应该还没有运行到这一步呢,前面的死循不知道怎么回事
回复 支持 反对

使用道具 举报

该用户从未签到

10#
发表于 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
回复 支持 反对

使用道具 举报

该用户从未签到

11#
 楼主| 发表于 2008-10-22 18:04:10 | 只看该作者
谢了,你的代码的确是对的,但是有些东西我觉得我没有搞明白,呵呵,多谢多谢,我回家要接着研究。。。
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-14 02:57 , Processed in 0.081891 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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