51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

楼主: lovetest6
打印 上一主题 下一主题

如何参数化link

[复制链接]

该用户从未签到

21#
发表于 2007-1-2 13:57:58 | 只看该作者
楼上,你如果直接COPY代码到你的QTP里,当然运行不了.
因为你的QTP里的对象库没有对象呀,怎么执行?
你最好是自己先录制一次,然后再根据上面讲的步骤算法来重新写一下.
回复 支持 反对

使用道具 举报

该用户从未签到

22#
发表于 2007-1-12 18:09:54 | 只看该作者

回复 #1 lovetest6 的帖子

请问版主element.tagname和element.InnerText是属于哪一块的语言?在哪可以查到tagname和innertext属性的相关资料?我在QTP帮助文档里没有查到。
回复 支持 反对

使用道具 举报

该用户从未签到

23#
发表于 2007-1-17 14:12:51 | 只看该作者
我也想问楼上同样的问题,这样写以后看变量的变化,好像和预期的值不一样!
回复 支持 反对

使用道具 举报

该用户从未签到

24#
发表于 2007-1-26 10:08:12 | 只看该作者
For Each element in tags
    If Ucase(element.tagname)="A" and left(element.InnerText,1)="[" Then
                        ReDim Preserve arr(i+1)
                    arr(i)=element.InnerText
    i=i+1
        end if
Next
谁能告诉我这段代码的作用是什么? 特别是if那个语句
回复 支持 反对

使用道具 举报

该用户从未签到

25#
发表于 2007-2-6 15:43:18 | 只看该作者

回复 #2 lovetest6 的帖子

请教版主

然后得到所有版面的名称,也就是link的名称。
存到数组里面

如何存进数组啊?

我在研究你这个帖子,不知道怎么实现
回复 支持 反对

使用道具 举报

该用户从未签到

26#
发表于 2007-2-12 12:41:22 | 只看该作者
楼主的这个参数化的方法很不错 :),如果为了检验页面所有的Link,我有个简单方法
我分析一下搂主的意思:
某个页面的所有的Link都点击并Check一遍。
那么思路基本应该是:进入该页面(*)--〉点击Link--〉Page复位(*)--〉点击Link。。。。直到所有link被点击一次。
即:
Browser("Browser").Page("Page").Link("name:=我的初始页面").Click
Browser("Browser").Page("Page").Sync
For i=0 to 1000
        If Browser("Browser").Page("Page").Link("index:="&i).Exist Then
                msgbox Browser("Browser").Page("Page").Link("index:="&i).GetRoProperty("name")//获得Link名称
                Browser("Browser").Page("Page").Link("index:="&i).Click
                Browser("Browser").Page("Page").Sync
               {... ...} //此处可以根据Link名称进行Link页面的校验
                Browser("Browser").Page("Page").Link("name:=我的初始页面").Click  //此句为页面复位作用
                Browser("Browser").Page("Page").Sync
        Else
                Exit For
        End If
Next

msgbox "该页面中Link的数量为:"&i
//
回复 支持 反对

使用道具 举报

该用户从未签到

27#
发表于 2007-5-7 11:57:10 | 只看该作者

回复 #26 Hunter 的帖子

Hunter兄
我按照你给的代码,运行了,有点问题
因为我的系统在每一个页面都会有一个Log out的Link,所以每次检查到这个Link的时候,就点了它退出了,之后了,退出到登陆界面,又有一个Forget password的Link,所以它就不停的去点这个Link。
我想做的是,如果遇到Log out只是检查不要点击它,必然就没发去检查Log out后面的Link了,这个语句该怎么写啊,就是说如果遇到Log out,不要点击这个Link,继续往下执行

请教Hunter 兄以及各路高手帮忙解决一下!
回复 支持 反对

使用道具 举报

该用户从未签到

28#
发表于 2007-5-7 17:46:36 | 只看该作者

回复 #10 shengyan 的帖子

10F的,我用了可以,但是唯一的一点就是:要把所要测试的Link写到一个数组里,并且要改变For循环的次数。就这一点不太好。但是要参数化的Link不需要加到对象库也能运行。能写出这么强的代码,已经很不错了。

再次感谢

[ 本帖最后由 alex_82712 于 2007-5-7 17:52 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

29#
发表于 2007-5-21 00:52:30 | 只看该作者
太谢谢了!!!!!
回复 支持 反对

使用道具 举报

  • TA的每日心情
    奋斗
    2022-7-13 15:22
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    30#
    发表于 2007-5-25 17:25:05 | 只看该作者
    关于循环语句的使用:
    在这里还是提倡使用For each
    如果用Hunter 的方法,for i=1 to 1000(如果页面上的link 大于1000怎么办?)
    不管1000个link的可能性如何,至少觉得不严密。
    如果真的要计算page上的links数,还不如直接使用 standard checkpoint (QTP Tutorial 上)
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    31#
    发表于 2007-5-29 17:33:31 | 只看该作者
    找了好久,终于找到我要查的问题的帖子了,太谢谢大家了

    还有两个问题,有谁可以详细的教一下:

    1.如何录制或写可以循环的脚步(比如我要测试很多次点击一个按钮“Cancel”,这个动作怎么录)
    2.我想根据条件来跑程序,应该怎么写脚本呢?
    比如在一定的条件下,会出现一种情况
    另外的情况下,又会出现另外的情况

    知道的同仁一定帮忙呀sdlkfj2
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    32#
    发表于 2007-7-10 16:15:44 | 只看该作者

    回复 #2 lovetest6 的帖子

    For Each element in tags
        If Ucase(element.tagname)="A" and left(element.InnerText,1)="[" Then
                            ReDim Preserve arr(i+1)
                        arr(i)=element.InnerText
        i=i+1
            end if
    Next
    上面代码中if后的第2个条件不具有普遍性,并不是每个链接的InnerText都是以[开头的,比如注册,登录,退出等,所以觉得应该去掉这个条件
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    33#
    发表于 2007-12-6 09:36:24 | 只看该作者

    回复 20# 的帖子

    我遇到的问题跟你的一样。但我不明白你下楼说的意思。是不是这样理解:先转到“http://bbs.51testing.com/default.php”此页面 ,然后点击各个栏目。而后在将刚才专家视图中的代码换成楼主的代码。但是“Browser("Browser").Navigate "http://bbs.51testing.com/index.php"
    ”这个地方的网址必须改为“http://bbs.51testing.com/default.php” 。。高手们帮我指点一下迷雾吧。我已经快崩溃了啊 。。。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    34#
     楼主| 发表于 2007-12-12 20:05:53 | 只看该作者
    原帖由 Fantastic_test 于 2007-12-6 09:36 发表
    我遇到的问题跟你的一样。但我不明白你下楼说的意思。是不是这样理解:先转到“http://bbs.51testing.com/default.php”此页面 ,然后点击各个栏目。而后在将刚才专家视图中的代码换成楼主的代码。但是“Browser("Br ...


    别崩溃啊。我想可能是论坛升级后,程序无法运行了。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    35#
     楼主| 发表于 2007-12-12 20:15:56 | 只看该作者
    原帖由 terrylight 于 2007-1-26 10:08 发表
    For Each element in tags
        If Ucase(element.tagname)="A" and left(element.InnerText,1)="[" Then
                            ReDim Preserve arr(i+1)
                        arr(i)=element.InnerText
        i ...


    这段代码的意思就是说,如果tagname是link的标记:<A>,而且link还是以"["开头。那么就认为这是板块名称的link。
    就把它存到数组里面。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    36#
     楼主| 发表于 2007-12-12 20:17:55 | 只看该作者
    原帖由 lily_mu75 于 2007-1-12 18:09 发表
    请问版主element.tagname和element.InnerText是属于哪一块的语言?在哪可以查到tagname和innertext属性的相关资料?我在QTP帮助文档里没有查到。


    查一下MS的手册吧。vbscript的。我想应该能查到吧。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    37#
    发表于 2007-12-13 20:23:26 | 只看该作者

    回复 1# 的帖子

    支持,顶
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    38#
    发表于 2007-12-29 10:23:42 | 只看该作者
    .........顶一个....

    [ 本帖最后由 kamina_ 于 2007-12-29 14:39 编辑 ]
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    39#
    发表于 2007-12-29 18:08:18 | 只看该作者

    看了

    看了就要支持下
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    40#
    发表于 2008-1-22 11:28:53 | 只看该作者
    顶下,算是高水平的交流
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-9-21 17:52 , Processed in 0.090734 second(s), 22 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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