51Testing软件测试论坛

标题: 如果取得一个变化的对象的属性值?(我以51testing为例) [打印本页]

作者: keynes_2005    时间: 2007-9-20 11:02
标题: 如果取得一个变化的对象的属性值?(我以51testing为例)
在51testing网页上面有这样的一个link: "菜鸟也能煮酒论英雄"。 我想取这个link的text属性, 如下脚本可以取得
MsgBox (Browser("51Testing软件测试论坛 测试 | 软件测试").Page("51Testing软件测试论坛 测试 | 软件测试").Link("菜鸟也能煮酒论英雄").GetTOProperty("text"))

问题: 如果这个link的名字将来变化了,我不想修改脚本,就可以取到他的text值, 这样可以做到吗? 该如何做呢?
我在里面直接利用通配符运行不过去。  
MsgBox (Browser("51Testing软件测试论坛 测试 | 软件测试").Page("51Testing软件测试论坛 测试 | 软件测试").Link(".........").GetTOProperty("text"))

(项目背景:有这样的想实现这样的一个功能, 创建一个新的记录, 这条记录的id是自动产生的, 我想取到每个新增加的记录的ID, 请高手帮忙看看, 谢谢)

Add: 多谢大家, 我来试一试。 请问4楼。 在用正则表达式匹配的时候, 是不是需要用+链接符合:
例如:需要匹配584241
[0-9]+[0-9]+[0-9]+[0-9]+[0-9]+[0-9] 这样对吗? 还是?
[0-9]&[0-9]&[0-9]&[0-9]&[0-9]&[0-9]
[0-9][0-9][0-9][0-9][0-9][0-9]

[ 本帖最后由 keynes_2005 于 2007-9-21 16:37 编辑 ]
作者: jackymail    时间: 2007-9-20 11:29
把link用其他的属性识别,别用text,然后取getroproperty
至于你的实际项目,如果是网页的,应该会有webtable,用webtable 的getcelldata比较合适。

[ 本帖最后由 jackymail 于 2007-9-20 11:33 编辑 ]
作者: rivermen    时间: 2007-9-20 12:09
(Browser("51Testing软件测试论坛 测试 | 软件测试").Page("51Testing软件测试论坛 测试 | 软件测试").Link(".........").GetTOProperty("text"))

spy一下link的属性,应该会有一个不变的属性,用它来描述
如link("id:=不变的值")

GetTOProperty不是这样用的
它返回的是录制过程中,存入到对象库中相应属性的值
作者: hsjzfling    时间: 2007-9-20 12:24
3楼说的没错的
(Browser("51Testing软件测试论坛 测试 | 软件测试").Page("51Testing软件测试论坛 测试 | 软件测试").Link("某个属性:=固定的值或可以用正则表达式区分的值").GetROProperty("某个属性"))

我这里有个循环输出符合某个条件的Link的URL的例子,楼主可以参考下
For iCount = 0 to curLinkNum - 1
                curLinkName = Browser(":=").Page(":=").Link("url:=http://bbs\.51testing\.com/redirect\.php\?goto=findpost&pid=[0-9]+&ptid=[0-9]+","index:=" & iCount).GetROProperty("url")
                text.WriteLine curLinkName
        Next
作者: jackymail    时间: 2007-9-20 12:33
如果index能取到或者有顺序。楼主估计就不用出来问了。

原帖由 hsjzfling 于 2007-9-20 12:24 发表
3楼说的没错的
(Browser("51Testing软件测试论坛 测试 | 软件测试").Page("51Testing软件测试论坛 测试 | 软件测试").Link("某个属性:=固定的值或可以用正则表达式区分的值").GetROProperty("某个属性"))

我 ...

[ 本帖最后由 jackymail 于 2007-9-20 12:38 编辑 ]
作者: hsjzfling    时间: 2007-9-20 13:02
5楼可能没太理解我的例子,我的例子目的是要获取url值符合正则表达式中条件的Page中所有的Link的url值,这个index是对于符合条件的Link编的号,而不是对于所有的Link,如果符合条件的只有一个Link,那么index可以省略或者值为0。
当然对于具体的实例如果方便使用ChildObjects那效率会更高。
作者: keynes_2005    时间: 2007-9-21 10:57
多谢大家, 我来试一试。 请问4楼。 在用正则表达式匹配的时候, 是不是需要用+链接符合:
例如:需要匹配584241
[0-9]+[0-9]+[0-9]+[0-9]+[0-9]+[0-9] 这样对吗?
作者: hsjzfling    时间: 2007-9-25 13:10
标题: 回复 #7 keynes_2005 的帖子
建议楼主看看帮助文档吧,在Index中输入关键字"regular expressions"进行查询。
"+"在正则表达式中是有特殊意义的。这里去掉+就可以了匹配了
作者: 没有蛀牙    时间: 2007-9-25 17:57
你是不是搞错了,应该是GetROProperty
我同意3楼,用描述性语言应该可以解决这个问题
作者: keynes_2005    时间: 2007-9-26 10:27
谢谢大家了, 问题解决了。




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