51Testing软件测试论坛

标题: qtp识别对象问题(急) [打印本页]

作者: lhjtc8257    时间: 2008-5-6 09:33
标题: qtp识别对象问题(急)
各位高手:
     
     在下在 编写QTP脚本的时候,遇到个问题
      碰到一个对象,属性为 innertext:=Western District & CentralKF-1198 (WES//MW)(0%C,0Min.)WES Spare 1(MW)(0%C,0Min.)Overflow(0%C,0Min.)

我进行了以下的操作但识别不出,请求帮忙

Browser("略").Page("略").WebElement("innertext:=Western District & CentralKF-1198 (WES//MW)(0%C,0Min.)WES Spare 1(MW)(0%C,0Min.)Overflow(0%C,0Min.)").click

请求帮忙
作者: walker1020    时间: 2008-5-6 09:37
建议 你对不能识别的那个对象的innertext 的 值 使用 正则表达式试试。
作者: hsjzfling    时间: 2008-5-6 09:46
QTP中默认是启用正则表达式的,所以你要将innertext:=后面的所有特殊字符前都加"\",至于哪些属于正则表达式中的特殊字符,请参见QTP帮助中的regular expressions->Defining

[ 本帖最后由 hsjzfling 于 2008-5-6 09:57 编辑 ]
作者: walker1020    时间: 2008-5-6 09:49
你写的表达式里面,innertext的值里面既有& 、又有 % 这样的特殊字符,不知道这是否会影响到QTP的识别? 另外,你使用Ojbect Spy 看看,这个对象的属性有哪些?属性值分别是什么?
作者: 莫冲    时间: 2008-5-6 10:17
首先,你用heightlign识别下,可以识别到对象吗,如果可以,说明是对的,在webelement后加个object试下
Browser("略").Page("略").WebElement("innertext:=Western District & CentralKF-1198 (WES//MW)(0%C,0Min.)WES Spare 1(MW)(0%C,0Min.)Overflow(0%C,0Min.)").object.click
。如果不行,则按LS几位的说法试试。
作者: lhjtc8257    时间: 2008-5-6 11:14
部分属性如图所显

[attach]41780[/attach]
作者: lhjtc8257    时间: 2008-5-6 11:19
是不是所有的字符 转换 都是统一的操作方法 在前面加"\"符号就可以了吗
请求帮忙

[ 本帖最后由 lhjtc8257 于 2008-5-6 11:29 编辑 ]
作者: lhjtc8257    时间: 2008-5-6 14:34
如何将RegularExpression属性值设置为False?
请求帮助
作者: 一起来测    时间: 2008-5-6 17:15
标题: hh
换个属性识别它吧
作者: 没有蛀牙    时间: 2008-5-6 18:12
描述性对象是支持正则表达式的
所以,=后面的那个字符串,QTP会把它当作一串正则表达式处理
而括号,斜杠,点号都是正则表达式里的保留字符,所以你用这么长的一串正则表达式,肯定是找不到对象的
WebElement("innertext:=Western District & CentralKF-1198.*")
应该可以,你试试
作者: lhjtc8257    时间: 2008-5-7 20:24

谢谢,我去试下
作者: lhjtc8257    时间: 2008-5-8 10:34
发现个小问题:
这个webelement中的innertext属性是多行显示的
如:
Western District & Central
KF-1198 (WES/MW)(0%C,0Min.)

WES Spare 1(MW)(0%C,0Min.)

Overflow(0%C,0Min.)
如何识别?
请教
作者: walker1020    时间: 2008-5-8 10:38
10楼朋友提供的建议应该没有问题,你去实验了吗?结果如何?使用了正则表达式后,QTP应该可以识别那个对象的,不管它的属性值有几行。
作者: lhjtc8257    时间: 2008-5-8 13:11
以我是这样写的:
略.WebElement("innertext:=Western District & CentralKF-1198.*")
略.WebElement("innertext:=Western District & CentralKF-1198.*")
两种都试过了,还是不行
提示: The webelement object's description matches more than one of the objects currently displayed in your application.
Add additional properties to the object description in order to uniquely identify the objext.

想问下, * 代替表达式省略的部分,只要单独的一个*就可以表示了吗,是不是还要其他的特殊符号

[ 本帖最后由 lhjtc8257 于 2008-5-8 13:27 编辑 ]
作者: 没有蛀牙    时间: 2008-5-8 16:09
matches more than one of the objects
匹配到多个对象了
你可以再加个属性,使它更好的匹配对象,index啊,坐标啊之类的
WebElement("innertext:=Western District & CentralKF-1198.*,"index:=<index>")
作者: lhjtc8257    时间: 2008-5-9 10:39
我仔细看了下,附图
[attach]41885[/attach]

所有的WebRadioGroup的属性,基本相同
只有outerhtml属性存在一点点不同


1)outerhtml:=XXXXXXXXXXXXXXX(XXX),id="ABC"
2)outerhtml:=XXXXXXXXXXXXXXX(XXX),id="EFG"

请求帮助
作者: badguy    时间: 2008-5-9 10:52
总有不同的地方,用不同的地方进行识别就可以了,或者用index
作者: walker1020    时间: 2008-5-9 11:36
即使通过Object Spy识别出来的所有属性值都相同,那么你仍然可以在对象库里面 对此对象增加一个 Index 属性来识别
作者: lhjtc8257    时间: 2008-5-12 09:17
学知识了,能简单说下,如何增加一个 Index 属性来识别

(现在整个脚本就卡在这一个步骤上 )
作者: bluewaves    时间: 2008-5-12 10:50
有个疑问:在对象库中对两个属性相同的对象添加index属性,当qtp运行脚本时,实际对象roproperty中并没有index属性,那qtp是怎么区分其与toproperty对象库中的对象的?是第一个出现的Run-time对象与index=0自动匹配吗?
作者: walker1020    时间: 2008-5-12 23:34
原帖由 lhjtc8257 于 2008-5-12 09:17 发表
学知识了,能简单说下,如何增加一个 Index 属性来识别

(现在整个脚本就卡在这一个步骤上 )



到对象库里面,找到此对象,增加 Index 属性即可
作者: lhjtc8257    时间: 2008-5-14 10:44
能简单说下,如何增加一个 Index 属性来识别

(现在整个脚本就卡在这一个步骤上 )
作者: kuailedelanbeik    时间: 2008-5-14 11:45
标题: 请高手指教:图片按钮,图片链接,swf不能被识别
我用的qtp是8.2,录制完以后有几个问题:
1. 在ascreen里图片链接或者按钮都没有识别,我用虚拟对象后在ascreen里能看见图片,可是那个粉框框总是偏离那个虚拟对象很远,为什么呢?可是我要录制的网页由很多这样的图片按钮,图片链接,如果做成虚拟对象会很多,有没有其他办法来解决?
2. 对swf上的按钮操作都没有录制上,还需要什么插件吗?
作者: wang7931_cn    时间: 2008-5-14 18:08
参考参考,很有意义!谢谢!




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