link("浏览")的具体地址到底在哪儿
请教各位大虾,我刚使用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 编辑 ] 不太会期待高手 帮你顶了 从测试对象地图里,你双击那个对象节点,能看到所有的属性,至于说能不能看到具体的url,那需要看程序上是怎么处理的了,有的页面将链接显式的写在页面中,这样LINK就可以用QTP直接获取到,但是有的页面是将链接写在一个js函数中,这样的话就只能通过其他的属性如text等来进行识别和参数化了。 学习了研究研究
回复 2# 的帖子
:lol :lol 初次使用,初次发帖,多多包涵~ 谢谢指引方向哈,今天动手实验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 编辑 ] 疯了,楼主是你在考验大家的智慧啊?如果提示错误的话,您是不是能把错误信息贴出来,并且告诉我们是第几行出了错误?我代表大家谢谢你 呵呵,不用谢,我现在都贴出来哈
上面有小小错误: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 不知道是不是 test project propersity里面没有这个这个SourceIndex项目造成的,目前用spy看了一下run project propersity有sourceIndex这个值,而test project propersity里却没有 原帖由 andrewXX 于 2009-6-10 17:28 发表 http://bbs.51testing.com/images/common/back.gif
不知道是不是 test project propersity里面没有这个这个SourceIndex项目造成的,目前用spy看了一下run project propersity有sourceIndex这个值,而test project propersity里却没有
QTP有两种属性的,一个运行时属性,一个测试对象属性,分别简称ro和to,你说的那个sourceIndex是哪个属性的? 原帖由 dreamever 于 2009-6-11 09:28 发表 http://bbs.51testing.com/images/common/back.gif
QTP有两种属性的,一个运行时属性,一个测试对象属性,分别简称ro和to,你说的那个sourceIndex是哪个属性的?
呵呵,是ro吧,我搞错了该run object,我写成了 run project.sourceIndex是在 ro里的属性,to里没有。
我后来试着用网上说的settoproperty函数去把sourceIndex 属性加在TO里面。报expected identifiler的错误。
我现在就想抓做sourceIndex这个值去自动化参数LINK,因为看起来每新建一个调查,sourceIndex值就变小一个,请教大侠们给出一个再具体点的思路好吗? 老是报这个错误
The test run cannot continue due to a syntax error.
Expected identifier
出错的代码行为:Browser("【xxx CMS Survey").Page("Survey List"). ").SetTOProperty("sourceIndex", "setIndex")".
我的setIndex设成的99
终于完成了
前几天的帖子,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,打完收工 晕死,到后面才看出的你的问题是什么。
这种研究和分享精神值得的大家学习。UPUPUP
页:
[1]