zxmxjl 发表于 2012-9-2 12:04:11

求助~~~检查网页上的链接,结果返回不正确

本帖最后由 zxmxjl 于 2012-9-2 12:05 编辑

写几行脚本,检测网页上是否存在某个链接,老是检测不出,明明这个链接是存在的。
Dim links,nulinks,linkcheck,i,aa
Set linkobj=Description.Create()
linkobj("micclass").value="link"
set links=Browser("51Testing软件测试论坛 软件测试 |").Page(" - [QuickTest").ChildObjects(linkobj)
nulinks=links.count
aa="QTP用户指南(中文版6.80M)"
For i=0 to nulinks-1
        linkcheck=Trim(Browser("51Testing软件测试论坛 软件测试 |").Page(" - [QuickTest").link("micclass:=link","index:="&i).GetROProperty("innertext"))
        'print linkcheck
        If linkcheck=aa Then
                reporter.ReportEvent micPass,"检查","pass"
                else
                reporter.ReportEvent micFail,"检查","fail"
        End If
Next
原先以为检测的有问题,后来加了个打印(标颜色的那句),把web上存在的link都打印出来,确实存在我要检测的连接,但是报告都是显示fail,空格什么都检查过了,为什么啊!!!!!

joykao 发表于 2012-9-3 09:17:09

这个循环每一次都会去验证下,那个页面肯定不止那一个link哇,有一个不匹配的话result就会使整体结果fail 的哇。。。。你可以查看那个result,如果你验证的Link存在,那么总有一个是pass的,


'打开到浏览器到右面的链接地址:
'http://bbs.51testing.com/forumdisplay.php?fid=69&filter=&orderby=dateline
Dim links,nulinks,linkcheck,i,aa
Set linkobj=Description.Create()
linkobj("micClass").value ="Link"
set links=Browser("micClass:=Browser").Page("micClass:=Page").ChildObjects(linkobj)
nulinks=links.count
aa="VBScript 脚本语言教程(51Testing官方教材)"
For i=0 to nulinks-1
      linkcheck=Trim(Browser("micClass:=Browser").Page("micClass:=Page").Link("micClass:=Link","index:="&i).GetROProperty("innertext"))
      print linkcheck
      If linkcheck= aa Then
                reporter.ReportEvent micPass,"This link exist","pass"
                else
                reporter.ReportEvent micFail,"NOT THIS LINK","fail"
      End If
Next

这是我调试的结果:

zjslovetyan 发表于 2012-9-3 09:25:45

受教了。。

zxmxjl 发表于 2012-9-3 10:52:45

这个循环每一次都会去验证下,那个页面肯定不止那一个link哇,有一个不匹配的话result就会使整体结果fail 的 ...
joykao 发表于 2012-9-3 09:17 http://bbs.51testing.com/images/common/back.gif


    很感谢,是有一个pass,我没看到

zxmxjl 发表于 2012-9-3 10:59:12

回复 2# joykao


    还有个问题要请教下,同样的代码,去检测51论坛空间发表日志的web上的link,检测出页面有192个link,但是循环过程中老是卡在第38次循环,代码应该没啥问题,但是为什么会卡主,是不是那个页面有什么特殊。

joykao 发表于 2012-9-3 12:54:09

回复 5# zxmxjl

没错的,本来就是38个当然循环到38就没了哇。。。

Dim links,nulinks,linkcheck,i,aa
Set linkobj=Description.Create()
linkobj("micClass").value ="Link"
set links=Browser("micClass:=Browser").Page("micClass:=Page").ChildObjects(linkobj)
nulinks=links.count
print nulinks
''aa="VBScript 脚本语言教程(51Testing官方教材)"
For i=0 to nulinks-1
      linkcheck=Trim(Browser("micClass:=Browser").Page("micClass:=Page").Link("micClass:=Link","index:="&i).GetROProperty("innertext"))
      print linkcheck
'      If linkcheck= aa Then
'                reporter.ReportEvent micPass,"This link exist","pass"
'                else
'                reporter.ReportEvent micFail,"NOT THIS LINK","fail"
'      End If
Next

zxmxjl 发表于 2012-9-3 14:52:06

回复 6# joykao


    为什么我运行的时候去print nulinks,会有192个link

joykao 发表于 2012-9-3 15:37:08

回复 7# zxmxjl

具体是什么样子的啊?那个发表日志的页面目测应该没有190个link 吧,
我贴出的脚本运行link数目38个,打印出来也是38个link

zxmxjl 发表于 2012-9-3 16:25:52

本帖最后由 zxmxjl 于 2012-9-3 16:43 编辑

回复 8# joykao


    奇怪了,我在家里是win7 64位底下装的qtp11,检测出来是192个link,用公司电脑xp底下的qtp10,检测link个数为38.

另外要请教下,经常出现脚本跑不过的情况,把qtp关掉再开重新跑这个脚本就过了,这是为什么

joykao 发表于 2012-9-4 10:42:34

回复 9# zxmxjl

QTP11啊,还没尝试过,我用的也是xp,你说的脚本跑不过具体是个什么情况呢?重启QTP 就好了?

xiaoshi_2011 发表于 2012-9-14 11:52:30

回复 10# joykao


    谢谢分享,受教了
页: [1]
查看完整版本: 求助~~~检查网页上的链接,结果返回不正确