jix11 发表于 2012-8-28 09:55:22

QTP怎么获取页面上属性的动态值

Browser("xxx").Page("xxx").WebElement("99,990").GetROProperty("innertext")
要获取99,990这个值,但是这个值会变化,那怎么办呢

hsjzfling 发表于 2012-8-28 11:04:56

对该WebElement对象的相关识别属性使用正则表达式来匹配下可能变化的范围

xjwldlover 发表于 2012-8-28 15:42:44

回复 1# jix11

当前对象Browser("xxx").Page("xxx").WebElement("99,990")肯定存在唯一标识属性。把innerText属性从对象库的webElement的对象中踢出去,再加一个唯一标识属性。这样就可以获取这个字段的值了。
注意,对象一定要唯一哦。对象属性、对象位置(父对象、子对象的相对位置)肯定可以唯一确定这个对象,否则程序自己都无法识别,还怎么显示值啊

louqqson008 发表于 2012-8-29 11:44:45

innertext对应的是99990这个变换的属性吗,

jix11 发表于 2012-8-30 15:46:43

回复 3# xjwldlover


    我用spy查了下,只有一下只能用坐标唯一标识,因为99990这个值是变动的

jix11 发表于 2012-8-30 15:47:49

回复 4# louqqson008


    是的,99990是变动的

xjwldlover 发表于 2012-8-30 15:59:38

你把对 WebElement("99,990") 的spy截图发上来。同时右键点“查看源文件”,把WebElement("99,990") 的对应标签信息贴出来,比如
“<div id="avatarfeed"><span id="threadsortswait"></span></div>”。
肯定可以唯一确定这个对象的。
如果邻居家长让你帮她去学校接孩子,他自己都不知道孩子叫什么长什么样,怎么可能告诉你接对人呢。

jix11 发表于 2012-8-30 16:26:15

回复 7# xjwldlover不知道你说的是不是这个,我刚开始用QTP,不是很清楚

云层 发表于 2012-8-30 16:27:19

用name=balance识别,getroproperty获得innertext就行了

jix11 发表于 2012-8-30 16:31:28

回复 9# 云层


    值是变的,值一变就报错了

xjwldlover 发表于 2012-8-30 16:41:10

本帖最后由 xjwldlover 于 2012-8-30 16:48 编辑

试试云层说的。

jix11 发表于 2012-8-30 16:55:18

回复 11# xjwldlover


    麻烦解释详细一点吧,不明白怎么用,只知道获取属性值,在属性里面没找到这一项

jix11 发表于 2012-8-30 17:51:38

不会吧,没有人帮我解释吗

xjwldlover 发表于 2012-8-30 17:52:05

对象库中找到你的WebElement("99,990") 对象,点击+给他增加Name 属性,同时吧innerText从你的对象属性里删除

jix11 发表于 2012-8-30 18:29:30

回复 14# xjwldlover是这样子添加name属性吗。
Browser("xxx").Page("xxx").WebElement("99,900").GetROProperty("balance")
我获取到的值是空

xjwldlover 发表于 2012-8-31 22:46:31

回复 15# jix11

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

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

希望对你有帮助,同时希望有大神补充、纠正~

superliming 发表于 2012-9-6 09:55:51

可以参考这个:num_2009=Browser("健康档案管理系统_2").Page("健康档案管理系统_2").Frame("dcEhrAllInfo").WebElement("micclass:=WebElement","innertext:=共.*条记录").GetROProperty("innertext")

zhangdizhu 发表于 2012-9-6 13:18:09

看书上说动态的可以利用描述性编程解决,不过没有试过,
页: [1]
查看完整版本: QTP怎么获取页面上属性的动态值