51Testing软件测试论坛

标题: 关于参数化Link的反馈 [打印本页]

作者: alex_82712    时间: 2007-5-7 14:18
标题: 关于参数化Link的反馈
请大家帮忙,我在QTP的精华区看了参数化Link的帖子后,自己做了,但是遇到了问题:
参数化home page的所有link,因为我的这个系统,在所有的页面(包括home page)上都有Log out这个link,运行到这里时,就直接点击它退出到登陆界面,所以在home page的Log out以后的link都不能被检查到,现在我想判断一下,如果检查到有Log out这个link时,不执行Click,直接继续往下检查,应该怎样处理啊?代码如下:

browser("...").Page("...").Link("more").Click                  '首次的link
browser("...").Page("...").Sync
browser("...").Page("...").Webelement("innerhtml:=Home").Click            '返回到home page

For i=0 to 1000
If browser("...").Page("...").Link("index:=" & i).Exist Then
  Msgbox browser("...").Page("...").Link("index:=" & i).GetRoProperty("name")      '获取被检查的link名称并输出
  browser("...").Page("...").Link("index:=" & i).Click                                            '测试被检查的每个link功能
  browser("...").Page("...").Sync
  browser("...").Page("...").webelement("innerhtml:=Home").Click                       ' return to the home page
Else
  Exit for
End If
Next
Msgbox "该页面中Link的数量为:"&i

当这段代码执行到Log out链接时,就点击退出到登陆界面了,登陆界面有一个forget password的link,所以就不停的检查forget password
是个死循环,我现在就想判断检查到Log out后,不执行Click,继续检查下面的link。
作者: alex_82712    时间: 2007-5-7 15:03
今天5月7日,大家是不是还在放假啊。
麻烦大家给点意见吧

小弟在此拜谢了
作者: alex_82712    时间: 2007-5-8 14:55
怎么没有人来帮忙解决问题啊?
麻烦版主和各位高手帮忙解决一下!
作者: walker1020    时间: 2007-5-8 18:01
请楼主说明你的”检查到有Log out这个link时,不执行Click,直接继续往下检查" ,到底是什么意思?
作者: walker1020    时间: 2007-5-8 18:12
首先找到 可以区分主页 和其它网页 的一个标志,并把这作为判断条件,然后分别处理此条件为真 和假 这两种情况的操作
作者: alex_82712    时间: 2007-5-9 15:00
标题: 回复 #4 walker1020 的帖子
版主,你好。
我的意思是:
现在主要做Link的参数化,但是我的系统的home page上有个Log out的Link,按照上面的代码顺序执行,当执行到Log out时,就点击了这个Link退出系统了,那么在home page里,Log out后面其实还有很多Link没有运行到,因为系统退出了

我就是想当运行到Log out时,不要点击这个link,继续检查它后面的link功能
作者: jimmy2006.hi    时间: 2007-5-9 16:10
browser("...").Page("...").Link("index:=" & i).Click                                            '测试被检查
在这句前面加上:a=browser("...").Page("...").Link("index:=" & i).GetRoProperty("innerText")
if a不等于"Log out" Then browser("...").Page("...").Link("index:=" & i).Click
End if
试试sdlkfj2
作者: jimmy2006.hi    时间: 2007-5-9 16:12
不等于是"<>"
作者: alex_82712    时间: 2007-5-10 10:44
非常感谢jimmy2006.hi
但是按照你给的建议,代码只检查了Home这个link,就结束了,而且Msgbox出来的link数量也是为0。给你看代码和系统图片
Image:
[attach]24822[/attach]
红框内都是要参数化的Link,但是“Personal”不是的,意思是:“Personal”是个一级菜单,当鼠标放在Personal上,它的二级菜单才会弹出来,二级菜单的Link不属于这个测试的范围。所以代码会顺序执行,Click Link的顺序是:Home、Log out、more、Add等等。

Resource in QTP:
Dim linkName
For i=0 to 1000
If browser("...").Page("...").Link("index:=" & i).Exist Then
  linkName=browser("...").Page("...").Link("index:=" & i).GetRoProperty("innerText")                    ' get link name
  Msgbox ("The linkname is " & linkName)                               ' print link name
  If linkName <> "Log out" Then
    browser("...").Page("...").Link("index:=" & i).Click                      ' click link
    browser("...").Page("...").webelement("innerhtml:=Home").Click         ' return to home page
    wait (2)
  End If
  browser("...").Page("...").Sync
  Exit for
End If
Next
wait (1)
Msgbox "该页面中Link的数量为: "&i

[ 本帖最后由 alex_82712 于 2007-5-10 10:45 编辑 ]
作者: jimmy2006.hi    时间: 2007-5-10 12:57
1.Msgbox"该页面中Link的数量为:&i"应该为i+1,因为i是从0开始的
2.Exit for语句的位置不对,应该在End if后面吧sdlkfj2
作者: jimmy2006.hi    时间: 2007-5-10 14:42
Exit for应该放在Else 里面
作者: alex_82712    时间: 2007-5-11 09:48
谢谢啊,问题已经解决了!




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