51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3461|回复: 10
打印 上一主题 下一主题

[原创] Description.Create( )??

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2007-7-7 12:04:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
假设我们需要完成以下操作:
Window(“计算器”).WinButton("text:=1").Click
Window(“计算器”).WinButton("text:=2").Click
Window(“计算器”).WinButton("text:=+").Click
通过Description对象来来实现上述功能如下:
Set MyDescription = Description.Create()
Set Calc= Description.Create()

Calc("regexpwndtitle")=”计算器”
Calc("regexpwndclass")= "SciCalc"
MyDescription("nativeclass").value="Button"

MyDescription("text").Value = "1"
Window(Calc).WinButton(MyDescription).Click

MyDescription("text").Value = "+"
Window(Calc).WinButton(MyDescription).Click

MyDescription("text").Value = "2"
Window(Calc).WinButton(MyDescription).Click


Set MyDescription = Nothing
Set Calc= Nothing
但上述代码老是调试不通过,提示问题为:Cannot identify the object "WinButton" (of class WinButton). Verify that this object's properties match an object currently displayed in your application.
知道的请解答一下,谢谢!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2007-7-7 13:38:17 | 只看该作者
Calc("regexpwndtitle")=”计算器”
Calc("regexpwndclass")= "SciCalc"
应该是
Calc("regexpwndtitle").value="=”计算器”
Calc("regexpwndclass").value="= "SciCalc"
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2007-7-7 13:51:51 | 只看该作者
除了2楼指出的错误以外,发现一个奇怪的地方。这段脚本并不是在Click每个计算器按钮都出现LZ遇到的错误提示Cannot identify the object "WinButton",只有加号按钮才出现错误。

  1. ...
  2. MyDescription("text").Value = "+"
  3. Window(Calc).WinButton(MyDescription).Click
  4. ...
复制代码


如果换成如下脚本,就可以顺利通过。

  1. SystemUtil.Run "calc.exe"
  2. Set Calc = Description.Create()
  3. Calc("regexpwndtitle").value = "计算器"
  4. Calc("regexpwndclass").value = "SciCalc"

  5. Set MyDescription = Description.Create()
  6. MyDescription("nativeclass").value = "Button"
  7. MyDescription("text").value = "1"
  8. Window(Calc).WinButton(MyDescription).Click

  9. MyDescription("text").value = "-"
  10. Window(Calc).WinButton(MyDescription).Click

  11. MyDescription("text").Value = "2"
  12. Window(Calc).WinButton(MyDescription).Click

  13. MyDescription("text").Value = "="
  14. Window(Calc).WinButton(MyDescription).Click

  15. Set MyDescription = Nothing
  16. Set Calc = Nothing
复制代码


计算器的其他按钮包括数字、减乘除号和等号都可以描述识别,但是就是加号按钮不知道为何总是识别出错。如果用QTP捕捉加号按钮并保存到对象仓库,在对象仓库中看到的加号按钮识别信息也仅限于nativeclass = Button和text = +这两个识别条件。目前还没有找到原因。

[ 本帖最后由 winfood 于 2007-7-7 13:59 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2007-7-7 13:56:18 | 只看该作者
+号是字符串连接符,需要用转义符转一下
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2007-7-7 14:09:14 | 只看该作者
原帖由 sidneylover 于 2007-7-7 13:56 发表
+号是字符串连接符,需要用转义符转一下


转义方式我早已经试过了,用MyDescription("text").value = Chr(43)也是不行的。
因为VBScript的机制是解释执行的,所以
MyDescription("text").value = Chr(43)

MyDescription("text").value = "+"
这两句在QTP运行脚本时是没有区别的,我怀疑这是某个Bug。

不知道我理解的对不对,楼上的能给个代码吗?
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2007-7-7 14:47:08 | 只看该作者
用\+代替+.这个在以前的帖子上有的.
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2007-7-7 15:06:23 | 只看该作者
搞不懂了
Set mydes = description.Create()
mydes("text").value = "+"
Set obj = window("计算器").ChildObjects(mydes)
msgbox obj.count
window("计算器").WinButton(mydes).click

这样MSGBOX出来的是0
mydes("text").value = "+"改成mydes("text").value = "\+"之后,MSGBOX的值是1,说明能找到对象,但执行window("计算器").WinButton(mydes).click的时候又提示没有对象
换成mydes("text").value = "\+"之后 ,能通过msgbox obj(0).GetROProperty("text")捕获到其text属性是+
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2007-7-7 15:07:19 | 只看该作者
原帖由 风过无息 于 2007-7-7 14:47 发表
用\+代替+.这个在以前的帖子上有的.


window("计算器").WinButton("text:=\+").Click
直接这样是可以的,但通过description方法就不行了
回复 支持 反对

使用道具 举报

该用户从未签到

9#
 楼主| 发表于 2007-7-7 19:39:17 | 只看该作者
谢谢了。不过,我现在测试的计算器的Button的"text"属性是空值,好像是不能由“text”属性来确定Button,需要由“Window id”来确定,问怎么写代码?
回复 支持 反对

使用道具 举报

该用户从未签到

10#
 楼主| 发表于 2007-7-7 19:45:08 | 只看该作者
再补充一下:谢谢楼上哥哥,姐姐。我用是QTP 8.2版!
回复 支持 反对

使用道具 举报

该用户从未签到

11#
发表于 2007-7-9 11:14:07 | 只看该作者

试了下这样可以

MyDescription("text").value = "\+"
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-26 20:31 , Processed in 0.067426 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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