51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2409|回复: 9
打印 上一主题 下一主题

[原创] 在线等,我get不行,order title取不出来

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2007-8-27 17:04:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我每次在运行脚本时,界面上会自动生成一个Order ID,看图,请问该怎么取到这个动态的值?用代码???

[ 本帖最后由 tangcy123 于 2007-8-27 18:36 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2007-8-27 17:08:10 | 只看该作者
代码:Browser("Welcome to Order Management").Page("Webex: Order Management").Frame("quicklink_9").WebElement("Order 715211 - TA-CMS")

请问如何取到 order id "715211",它是动态的,每运行一次就不一样的。
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2007-8-27 17:57:37 | 只看该作者
这是一个对象嘛,你用GetTOProperties() 就可以得到了三.然后把你要的信息取出来就OK了
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2007-8-27 17:58:08 | 只看该作者
GetTOProperties() 就是专门用来取对象动态属性的
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2007-8-27 18:32:31 | 只看该作者

求助

OrderTitle= Browser("Welcome to Order Management").Page("Webex: Order Management").Frame("quicklink_9").GetTOProperty()

我用这个也不行哦????
回复 支持 反对

使用道具 举报

该用户从未签到

6#
 楼主| 发表于 2007-8-27 18:35:53 | 只看该作者

在线等,我用一下代码也不行,order title取不出来

Dim OrderTitle,OrderID,ID

OrderTitle= Browser("Welcome to Order Management").Page("Webex: Order Management").Frame("quicklink_9").GetTOProperty()

set OrderID=Right(Left(OrderTitle,12),6)
Msgbox OrderTitle
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2007-8-27 18:56:51 | 只看该作者
错,应该用GetROProperty()
你先用Object Spy查看一下,看看是哪个属性的值为Order 715211 - TA-CMS
然后用OrderID = Browser("Welcome to Order Management").Page("Webex: Order Management").Frame("quicklink_9").WebElement("Order 715211 - TA-CMS").GetROProperty("属性名")
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2007-8-27 19:12:08 | 只看该作者
1.如果只是为了能识别这个对象,只要将WebElement("Order 715211 - TA-CMS")的innertext属性设为参数表达式即可;或者用描述性编程也是一样的道理
2.如果想取出数字,先获得innertext值,然后自己写个方法用正则表达式取出想要的值。我这提供一个,你看看能不能用:
'example:
'Msgbox  CInt(GetMatchedValue("Order 715211 - TA-CMS", "\d")) 将打印出715211
Function GetMatchedValue(str, patrn)

  Dim retStr, oldPos
   
  Set regEx = New RegExp         ' Create a regular expression.
  regEx.Pattern = patrn         ' Set pattern.
  regEx.IgnoreCase = True         ' Set case insensitivity.
  regEx.Global = True         ' Set global applicability.
  Set Matches = regEx.Execute(str)   ' Execute search.
  For Each Match in Matches
                tempValue = tempValue & Match.Value
  Next
  GetMatchedValue = tempValue
  
End Function

[ 本帖最后由 sstars 于 2007-8-27 19:13 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2007-8-27 19:19:55 | 只看该作者
概念不过关,还是要看下文章 《QTP识别和操作对象的原理》[url]http://bbs.51testing.com/thread-87074-1-1.html[/url]

首先这个实际对象内容是变化的,你的仓库对象要匹配它,就得抓住它的规律,而不能简单的用静态值来匹配。
这个实际对象的规律呢,就是它的innertext开头和结尾是固定的,是”Order 。。。 - TA-CMS",
所以你应该修改仓库对象,将仓库对象的innertext属性修改为"Order .* - TA-CMS",仓库对象的名字改为"Order Title"。
这样Browser("Welcome to Order Management").Page("Webex: Order Management").Frame("quicklink_9").WebElement("Order Title")就指向你要的实际对象了,再用GetROProperty将这个实际对象的innertext属性取出来,就得到order title了。

对象库模式:
title = Browser("Welcome to Order Management").Page("Webex: Order Management").Frame("quicklink_9").WebElement("Order Title").GetROProperty("innertext")

描述性编程模式:
title = Browser("Welcome to Order Management").Page("Webex: Order Management").Frame("quicklink_9").WebElement("innertext:=Order .* - TA-CMS").GetROProperty("innertext")

[ 本帖最后由 yabest 于 2007-8-27 19:22 编辑 ]
回复 支持 反对

使用道具 举报

  • TA的每日心情
    开心
    2016-2-27 08:48
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    10#
    发表于 2007-8-28 00:34:52 | 只看该作者
    yabest 的回答比较准确到位,这两种方法都可以。呵呵!
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-15 22:58 , Processed in 0.105659 second(s), 28 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表