51Testing软件测试论坛

标题: QTP怎么获取页面上属性的动态值 [打印本页]

作者: jix11    时间: 2012-8-28 09:55
标题: QTP怎么获取页面上属性的动态值
Browser("xxx").Page("xxx").WebElement("99,990").GetROProperty("innertext")
要获取99,990这个值,但是这个值会变化,那怎么办呢
作者: hsjzfling    时间: 2012-8-28 11:04
对该WebElement对象的相关识别属性使用正则表达式来匹配下可能变化的范围
作者: xjwldlover    时间: 2012-8-28 15:42
回复 1# jix11

当前对象Browser("xxx").Page("xxx").WebElement("99,990")肯定存在唯一标识属性。把innerText属性从对象库的webElement的对象中踢出去,再加一个唯一标识属性。这样就可以获取这个字段的值了。
注意,对象一定要唯一哦。对象属性、对象位置(父对象、子对象的相对位置)肯定可以唯一确定这个对象,否则程序自己都无法识别,还怎么显示值啊
作者: louqqson008    时间: 2012-8-29 11:44
innertext对应的是99990这个变换的属性吗,
作者: jix11    时间: 2012-8-30 15:46
回复 3# xjwldlover


    我用spy查了下,只有一下只能用坐标唯一标识,因为99990这个值是变动的
作者: jix11    时间: 2012-8-30 15:47
回复 4# louqqson008


    是的,99990是变动的
作者: xjwldlover    时间: 2012-8-30 15:59
你把对 WebElement("99,990") 的spy截图发上来。同时右键点“查看源文件”,把WebElement("99,990") 的对应标签信息贴出来,比如
“<div id="avatarfeed"><span id="threadsortswait"></span></div>”。
肯定可以唯一确定这个对象的。
如果邻居家长让你帮她去学校接孩子,他自己都不知道孩子叫什么长什么样,怎么可能告诉你接对人呢。
作者: jix11    时间: 2012-8-30 16:26
回复 7# xjwldlover不知道你说的是不是这个,我刚开始用QTP,不是很清楚
作者: 云层    时间: 2012-8-30 16:27
用name=balance识别,getroproperty获得innertext就行了
作者: jix11    时间: 2012-8-30 16:31
回复 9# 云层


    值是变的,值一变就报错了
作者: xjwldlover    时间: 2012-8-30 16:41
本帖最后由 xjwldlover 于 2012-8-30 16:48 编辑

试试云层说的。
作者: jix11    时间: 2012-8-30 16:55
回复 11# xjwldlover


    麻烦解释详细一点吧,不明白怎么用,只知道获取属性值,在属性里面没找到这一项
作者: jix11    时间: 2012-8-30 17:51
不会吧,没有人帮我解释吗
作者: xjwldlover    时间: 2012-8-30 17:52
对象库中找到你的WebElement("99,990") 对象,点击+给他增加Name 属性,同时吧innerText从你的对象属性里删除
作者: jix11    时间: 2012-8-30 18:29
回复 14# xjwldlover是这样子添加name属性吗。
Browser("xxx").Page("xxx").WebElement("99,900").GetROProperty("balance")
我获取到的值是空

作者: xjwldlover    时间: 2012-8-31 22:46
回复 15# jix11

应该是webElement("99,900").Exists()属性是False,推测可能两种情况会造成这种情形:
①可能存在多个webElement,这个就需要你再给这个WEBELEMENT增添其他属性,来确认他的唯一性了
②可能只有在上层某个对象展开后才加载这个WebElement对象。

确认的方法很简单,通过获取Page的childObjects子对象集合,并输出每个CHildObject的属性来查看到底是找到多个对象,还是该对象根本还没加载。

希望对你有帮助,同时希望有大神补充、纠正~
作者: superliming    时间: 2012-9-6 09:55
可以参考这个:num_2009=Browser("健康档案管理系统_2").Page("健康档案管理系统_2").Frame("dcEhrAllInfo").WebElement("micclass:=WebElement","innertext:=共.*条记录").GetROProperty("innertext")
作者: zhangdizhu    时间: 2012-9-6 13:18
看书上说动态的可以利用描述性编程解决,不过没有试过,




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