51Testing软件测试论坛

标题: 请教大侠!录制非windows自带的下拉列表框如何选中其它item的问题! [打印本页]

作者: haha_s    时间: 2009-2-17 19:36
标题: 请教大侠!录制非windows自带的下拉列表框如何选中其它item的问题!
搜了一下午问题帖子,发现大家都和我的情况不太一样,故特地发帖求助,详细如下:

用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呢?
作者: jacksboy    时间: 2009-2-17 19:45
首先要弄清楚这个下拉列表框到底是组合控件还是单一控件,真正选取的到底是哪一层控件
作者: haha_s    时间: 2009-2-17 20:13
请教如何查看是组合控件还是单一控件呢?
作者: jacksboy    时间: 2009-2-17 20:58
可以问开发阿,或者试着用object spy去识别不同区域的下拉列表框看是不是识别为不同的控件
作者: FrienkyK    时间: 2009-2-17 23:54
标题: 个人看法
我这个家伙才学没多久,但是我在选择那个QTP自带的测试用的软件Flight.exe的时候,在选择航班时也是列表框,我直接在select 后面写的数字,后来又改用了一个随机数的方式,两种都行,不知道对你有没有帮助~~~
作者: haha_s    时间: 2009-2-18 08:59
回jacksboy:
用spy获取了几个同样的下拉列表框,都是winobject类型,不知道是不是因为此控件是非标准控件所以QTP识别不出来呢?
作者: haha_s    时间: 2009-2-18 09:47
回FrienkyK
由于这个下拉列表框不能被识别为list或combobox,都无法用select方法,呵呵
还是谢谢你的建议
作者: jacksboy    时间: 2009-2-18 10:07
有很多非标准控件如果你不清楚它具体是什么控件或者没有装最合适的对应插件,QTP都有可能识别不出来的。一般WIN的会识别为WINOBJECT,WEB的会识别为WEBELEMENT。
你除了点下拉列表框去识别外,还要点下拉列表框边上的那个下拉箭头,看识别为什么。
如果不一样那就是组合控件了。总之多点几个地方去识别,尽可能的知道这个控件到底是什么对象。
然后这样去试试:不是要录下拉列表选择一个ITEM么,那就分3步录:
1选中该控件
2点击旁边的下拉列表框
3做选择ITEM的操作
作者: haha_s    时间: 2009-2-18 17:03
回LS:
用spy获取了拉列表框边本身和它边上的下拉箭头,都识别为winobject,是否说明这个控件不是组合控件呢
可是即能说明什么问题吗?
另外,按照您的说法,将步骤分解为三步:
其实1和2是同一个步骤(选中控件的同时将item列了出来),这句是可以回放成功的;
第3步就是这句:Window("TEST").Window("Map").WinObject("Item1").Click 60,125  无法回放成功。
作者: jacksboy    时间: 2009-2-18 17:09
你的那个item在第一二步中就已经选中的item还是你是在列出item以后在自己去选择的item在自己去选择的item
作者: haha_s    时间: 2009-2-19 11:33
没明白你的意思,呵呵
我的步骤是:
1. 初始页面默认显示item1
2. 点击后,下拉列表中显示出item1、item2、item3
3. 我选中item2
作者: jacksboy    时间: 2009-2-19 12:17
你选的是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 编辑 ]




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