51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3218|回复: 14
打印 上一主题 下一主题

[求助] link("浏览")的具体地址到底在哪儿

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2009-6-9 17:40:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请教各位大虾,我刚使用QTP哈,最近录制一个脚本,步骤是: 创建一个新的调查->跳转到所有调查项(包含新调查)的页面->点击新建调查的“浏览”项->查看新调查并投票

在回放的时候提示找不到相应调查项,原因是录制脚本创建的提交调查项和新建的调查项取名不一样。
我想看能不能参数化,但打开专家视图查看代码却发觉无从下手, 比如如下代码:

Browser("【xx.CMS Survey").Page("Survey List").Link("预览").Click
Browser("投票").Page("投票").WebRadioGroup("radio_19").Select "19_23"

link(“预览”)打开的具体URL地址没有给出啊?我应该怎么办才能得到它打开的具体地址,并着手参数化它呢,谢谢大家了

[ 本帖最后由 andrewXX 于 2009-6-10 10:06 编辑 ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2009-6-9 18:15:32 | 只看该作者
不太会  期待高手 帮你顶了
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2009-6-10 09:06:12 | 只看该作者
从测试对象地图里,你双击那个对象节点,能看到所有的属性,至于说能不能看到具体的url,那需要看程序上是怎么处理的了,有的页面将链接显式的写在页面中,这样LINK就可以用QTP直接获取到,但是有的页面是将链接写在一个js函数中,这样的话就只能通过其他的属性如text等来进行识别和参数化了。
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2009-6-10 09:26:00 | 只看该作者
学习了  研究研究
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2009-6-10 10:01:37 | 只看该作者

回复 2# 的帖子

初次使用,初次发帖,多多包涵~
回复 支持 反对

使用道具 举报

该用户从未签到

6#
 楼主| 发表于 2009-6-10 10:03:20 | 只看该作者
谢谢指引方向哈,今天动手实验
回复 支持 反对

使用道具 举报

该用户从未签到

7#
 楼主| 发表于 2009-6-10 16:10:35 | 只看该作者

sourceIndex 错在哪,老提示这个错误

今天在网上找了些帖子,发现一些方法,试着做了一下,如下,请大虾们帮排查一下哪里错了啊
Set objlinks=Browser("【XXX CMS Survey").Page("Survey List").object.links
For each select_link in objlinks
        If select_link.sourceIndex<mix_sourceIndexID Then
         got_mixIndex=select_link.sourceIndex
         mix_sourceIndexID=select_link.sourceIndex
        End If

Next

Browser("【XXX CMS Survey").Page("Survey List").Link("sourceIndex"=got_mixIndex).Click

[ 本帖最后由 andrewXX 于 2009-6-10 16:51 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2009-6-10 16:37:18 | 只看该作者
疯了,楼主是你在考验大家的智慧啊?如果提示错误的话,您是不是能把错误信息贴出来,并且告诉我们是第几行出了错误?我代表大家谢谢你
回复 支持 反对

使用道具 举报

该用户从未签到

9#
 楼主| 发表于 2009-6-10 16:47:24 | 只看该作者
呵呵,不用谢,我现在都贴出来哈
上面有小小错误:Link("sourceIndex"=got_mixIndex)提示,got_mixIndex未知 错误,后来发现该写成Link("sourceIndex="&got_mixIndex).

改正之后出现的错误为:
The "sourceIndex=95" link object was not found in the object Repository. Check the Object Repository to confirm that the object exists or to find the correct name for the object
回复 支持 反对

使用道具 举报

该用户从未签到

10#
 楼主| 发表于 2009-6-10 17:28:30 | 只看该作者
不知道是不是 test project propersity里面没有这个这个SourceIndex项目造成的,目前用spy看了一下run project propersity有sourceIndex这个值,而test project propersity里却没有
回复 支持 反对

使用道具 举报

该用户从未签到

11#
发表于 2009-6-11 09:28:12 | 只看该作者
原帖由 andrewXX 于 2009-6-10 17:28 发表
不知道是不是 test project propersity里面没有这个这个SourceIndex项目造成的,目前用spy看了一下run project propersity有sourceIndex这个值,而test project propersity里却没有

QTP有两种属性的,一个运行时属性,一个测试对象属性,分别简称ro和to,你说的那个sourceIndex是哪个属性的?
回复 支持 反对

使用道具 举报

该用户从未签到

12#
 楼主| 发表于 2009-6-11 09:49:47 | 只看该作者
原帖由 dreamever 于 2009-6-11 09:28 发表

QTP有两种属性的,一个运行时属性,一个测试对象属性,分别简称ro和to,你说的那个sourceIndex是哪个属性的?

呵呵,是ro吧,我搞错了该run object,我写成了 run project.sourceIndex是在 ro里的属性,to里没有。
我后来试着用网上说的settoproperty函数去把sourceIndex 属性加在TO里面。报expected identifiler的错误。

我现在就想抓做sourceIndex这个值去自动化参数LINK,因为看起来每新建一个调查,sourceIndex值就变小一个,请教大侠们给出一个再具体点的思路好吗?
回复 支持 反对

使用道具 举报

该用户从未签到

13#
 楼主| 发表于 2009-6-11 10:18:58 | 只看该作者
老是报这个错误
The test run cannot continue due to a syntax error.
Expected identifier

出错的代码行为:Browser("【xxx CMS Survey").Page("Survey List"). ").SetTOProperty("sourceIndex", "setIndex")".

我的setIndex设成的99
回复 支持 反对

使用道具 举报

该用户从未签到

14#
 楼主| 发表于 2009-6-16 10:16:35 | 只看该作者

终于完成了

前几天的帖子,QTP的许多基础知识都不懂,现在搞明白了,贴出来希望可以供非常新的新人参考参考。

弄清楚如下基础概念和方法才能少走弯路:
运行时对象:Run object
测试对象:Test object
对象仓库:object Repository
对象探测器:Object Spy
重要函数
Getroproperty:取得运行时对象的各种属性
Settoproperty:设置测试对象的各种属性
Getroproperty函数的使用格式为:某对象.Getroproperty(“属性名称”)
SettoPRoperty函数的使用格式为:某对象.Settoproperty "属性" 变量//注意变量不需要引号,引号也是区分半角字符和全角字符滴。link中使用某属性时,记住在等号前面要加一冒号,像这样link(“href:=XXX”)
-------------------------具体执行------------------------------------------------------------
1.回放时的问题。
此次参数化的LINK是这样的,创建一个调查,在列表中点击浏览,浏览该新建调查,当录制到浏览那一步时,QTP记录的时第一次录制脚本的LINK。QTP把该LINK的各个属性都放在Test Object中,以后再运行该脚本就根据Test Object的属性值创建一临时对象。故每次跑该脚本,创建完新的调查,点浏览时,还是浏览的最开始录制脚本时的调查。因为LINK中的属性<Href >没变。

所以选择使用href的值来参数化该link,观察href属性:(“href:=http://xxx/subject_id=55[/color只要能够做到将红色字体及调查ID参数话,就能打开不同的链接。为此,我们要得到最新创建的调查的ID。

2.使用object Repository 和 object Spy 加观察web页面,获取我们所有需要的对象及信息。
可以观察那个对象中带有这个调查ID,通过观察页面发现,在新建调查的web页面下方有一张表A给出了新建调查的的信息。
我们能使用的对象的数据都是保存在对象库(object repository)中的,如果对象库中没有该表,则无法使用该表中的信息,由于录制脚本时没有对该表的操作,对象库(object Repository)中无此对象,所以我们要将该表A加入到对象库(object repository)。
然后就是在脚本运行时获得该表的最新价值,这里就要用到GetroProperty函数了,具体抓取什么属性要根据Object Spy 该对象的属性特定来得出。

3.既然一切都有了,接下来就是编码了呗,将得到的最新ID,构造一个最新的链接href,然后用SetTOPropery函数将它设置给脚本运行时参照的临时对象。它就能正确打开最新的调查页面了,代码如下
h="http://157.60.54.136:8013/msurvey/SurveyPreview.aspx?subject_id="&Id //此处的Id及为最新的调查ID
Browser("【XXX CMS Survey").Page("Survey List").Link("预览").SetTOProperty "href",h
Browser("【XXX CMS Survey").Page("Survey List").Link("预览").Click

OK,打完收工
回复 支持 反对

使用道具 举报

  • TA的每日心情
    奋斗
    2014-10-15 22:18
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    15#
    发表于 2009-6-16 15:09:13 | 只看该作者
    晕死,到后面才看出的你的问题是什么。
    这种研究和分享精神值得的大家学习。UPUPUP
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-7 07:38 , Processed in 0.078195 second(s), 28 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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