51Testing软件测试论坛

标题: 怎么使用QTP获取页面一个对象的值,这个值是动态的 [打印本页]

作者: hslqin    时间: 2011-11-21 15:22
标题: 怎么使用QTP获取页面一个对象的值,这个值是动态的
整个是一个电子流的流程,页面页头有一个控件,用于显示一条电子流的信息,其中一个是这个电子流的流水号信息,现在要获取这个流水号的信息

页面控件大概是这个样子,由于公司限制,不可以贴图

流水号:GZ2011110001

这个是静态的,不可以编辑,应该怎么获取?

用QTP获取GZ2011110001这个对象时,对象的Name为GZ2011110001,innertext为GZ2011110001,html tag为span,类型为WebElement

用GetROProperty可以获取这个值吗?

流水号是唯一标识一个流程的,换一个流程能否获取到这个值?
作者: futogether    时间: 2011-11-22 10:38
应该可以。
在对象库里存的对象,name可以自定义的。你可以以innertext为作为唯一标识,然后获取这个值。
Browser("a").Page("a").WebElement("GZ2011110001").GetROProperty("innertext")
作者: ermine    时间: 2011-11-22 10:52
每个流程的name是不是不一样的?

如果你每个流程的流水号不一样,看看什么规则,用正则表达式匹配一下。
然后再用楼上说的GetROProperty
作者: nicholaszou    时间: 2011-11-22 10:54
你这个流水号每次都会变的吧  建议用描述性编程   你每个流水号开头的GZ是不变的吧?
如果是 就写成GZ.*,如果页面有多个的话 就在加一个标识  两个确定唯一一个就可以了 最后再用GetROProperty(),就可以了
作者: hslqin    时间: 2011-11-22 11:24
回复 2# futogether


谢谢,可以获取到值,只是报了一个警告
作者: hslqin    时间: 2011-11-22 11:26
回复 3# ermine


  
每个流程的name是不一样,QTP获取对象时都是以显示的值作为name的

流程号的规则是GZ+年+月+四位数依次递增

用正则表达式匹配,然后再用GetROProperty是什么意思?不是太懂
作者: hslqin    时间: 2011-11-22 11:27
回复 4# nicholaszou


再加一个标识是什么意思?什么是描述性编程?
作者: nicholaszou    时间: 2011-11-22 13:51
首先 你要获取的页面是不是只有一个 流水号 如果只有一个的话
Browser("title:=a").Page("title:=a").WebElement("innertext:=GZ.*").GetROProperty("innertext")               

这么写就可以 ,但是如果页面有多个流水号 你就在加一个标识
Browser("title:=a").Page("title:=a").WebElement("innertext:=GZ.*","xxx:=xx").GetROProperty("innertext")   就可以了
作者: hslqin    时间: 2011-11-22 14:10
回复 8# nicholaszou


    谢谢
作者: ermine    时间: 2011-11-22 17:26
回复 6# hslqin

如果不太懂描述性编程,最简单的是在对象库中改。
在属性里面,有个正则的勾选,把这个选中就是使用正则,然后name的属性里写好规则,比如:GZ.*

加一个标示的意思,是指如果你当前页面有多个符合正则的对象,QTP就不识别了,比如既有GZ123456,又有GZ654321,需要用其他的属性来区分。
作者: hslqin    时间: 2011-11-23 11:45
回复 10# ermine


    明白了,谢谢
作者: zzxxbb112    时间: 2011-11-23 12:13
推荐10楼的方法,描述性编程还是少用,也不是这么用的。
作者: heting1980    时间: 2012-10-10 11:37
类似问题,求各位大侠帮忙下;谢谢!

用QTP获取name123456这个对象时,对象的Name为name123456,innertext为王明,html tag为span,类型为WebElement
由于脚本录制是,页面中获取的innertext=“王明”,但在运行时这个字段值是随机动态变化的,如“王红”;
用如下脚本,永远只能得到“王明”;
Browser("title:=a").Page("title:=a").WebElement("name123456").GetROProperty("innertext")               
请教,这种情况怎么处理;非常感谢!
作者: edisonzhang    时间: 2016-3-30 10:09
对象库innertext:=总记录数:161 条  修改成总记录数:\\d 条 不能识别对象   [attach]100631[/attach]
等答复 谢谢




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