51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2933|回复: 11
打印 上一主题 下一主题

[原创] 请教大侠!录制非windows自带的下拉列表框如何选中其它item的问题!

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2009-2-17 19:36:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
搜了一下午问题帖子,发现大家都和我的情况不太一样,故特地发帖求助,详细如下:

用QTP录制C/S结构的应用程序,录制一个下拉列表框,代码如下:
Window("TEST").Window("Map").WinObject("Item1").Click 60,125
回放这段代码无法选中列表中其他item

本来想用select方法,但是将click改成select后系统提示不能使用该方法。

于是又将上述代码改成:
Window("TEST").Window("Map").WinComboBox("text:=UMTS Layer").select "Item2"
可是系统会报错:Cannot identify the item(for object"WinComboBox").Verfity that this item's properties match an item currently displayed in your application.

请教各位大侠,对于这种非标准的windows下拉列表框该用什么办法来获取其它item呢?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2009-2-17 19:45:24 | 只看该作者
首先要弄清楚这个下拉列表框到底是组合控件还是单一控件,真正选取的到底是哪一层控件
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2009-2-17 20:13:19 | 只看该作者
请教如何查看是组合控件还是单一控件呢?
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2009-2-17 20:58:41 | 只看该作者
可以问开发阿,或者试着用object spy去识别不同区域的下拉列表框看是不是识别为不同的控件
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2009-2-17 23:54:51 | 只看该作者

个人看法

我这个家伙才学没多久,但是我在选择那个QTP自带的测试用的软件Flight.exe的时候,在选择航班时也是列表框,我直接在select 后面写的数字,后来又改用了一个随机数的方式,两种都行,不知道对你有没有帮助~~~
回复 支持 反对

使用道具 举报

该用户从未签到

6#
 楼主| 发表于 2009-2-18 08:59:54 | 只看该作者
回jacksboy:
用spy获取了几个同样的下拉列表框,都是winobject类型,不知道是不是因为此控件是非标准控件所以QTP识别不出来呢?
回复 支持 反对

使用道具 举报

该用户从未签到

7#
 楼主| 发表于 2009-2-18 09:47:56 | 只看该作者
回FrienkyK
由于这个下拉列表框不能被识别为list或combobox,都无法用select方法,呵呵
还是谢谢你的建议
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2009-2-18 10:07:26 | 只看该作者
有很多非标准控件如果你不清楚它具体是什么控件或者没有装最合适的对应插件,QTP都有可能识别不出来的。一般WIN的会识别为WINOBJECT,WEB的会识别为WEBELEMENT。
你除了点下拉列表框去识别外,还要点下拉列表框边上的那个下拉箭头,看识别为什么。
如果不一样那就是组合控件了。总之多点几个地方去识别,尽可能的知道这个控件到底是什么对象。
然后这样去试试:不是要录下拉列表选择一个ITEM么,那就分3步录:
1选中该控件
2点击旁边的下拉列表框
3做选择ITEM的操作
回复 支持 反对

使用道具 举报

该用户从未签到

9#
 楼主| 发表于 2009-2-18 17:03:30 | 只看该作者
回LS:
用spy获取了拉列表框边本身和它边上的下拉箭头,都识别为winobject,是否说明这个控件不是组合控件呢
可是即能说明什么问题吗?
另外,按照您的说法,将步骤分解为三步:
其实1和2是同一个步骤(选中控件的同时将item列了出来),这句是可以回放成功的;
第3步就是这句:Window("TEST").Window("Map").WinObject("Item1").Click 60,125  无法回放成功。
回复 支持 反对

使用道具 举报

该用户从未签到

10#
发表于 2009-2-18 17:09:54 | 只看该作者
你的那个item在第一二步中就已经选中的item还是你是在列出item以后在自己去选择的item在自己去选择的item
回复 支持 反对

使用道具 举报

该用户从未签到

11#
 楼主| 发表于 2009-2-19 11:33:29 | 只看该作者
没明白你的意思,呵呵
我的步骤是:
1. 初始页面默认显示item1
2. 点击后,下拉列表中显示出item1、item2、item3
3. 我选中item2
回复 支持 反对

使用道具 举报

该用户从未签到

12#
发表于 2009-2-19 12:17:51 | 只看该作者
你选的是item2,怎么脚本里是item1,那就说明这步操作没有录下来么。item2可能没有识别。

先看对象库里有没有item2这个对象,点一下HIGHLIGHT 对象的哪个按钮,看能不能在那个C/S程序中找到。

如果哪个click的坐标每次都是会变的话,那也很可能回放不成功

先说利用wscript.shell对象的方法怎么写,这个应该能通过,录到点击控件后

dim wsh
set wsh=CreateObject("Wscript.Shell")
wsh.sendKeys  "{UP}"
wsh.sendKeys ”{enter}“
常规方法怎么录我没看到实际程序,看看文挡在说

[ 本帖最后由 jacksboy 于 2009-2-19 12:22 编辑 ]
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-11 04:45 , Processed in 0.076394 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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