51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3050|回复: 5
打印 上一主题 下一主题

[求助] 如何准确定位WinObject控件?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2008-2-1 14:58:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
录制步骤: 1) 打开一个excel 2) 点击File-Open菜单 3) 点击左边栏的Desktop 4) 在右边框中选择一个文件 5) 点击Open按钮。
脚本如下:
Window("Book1_2").Activate
Window("Book1_2").WinObject("Worksheet Menu Bar").Click 44,13
Window("Book1_2").Window("File").Click 58,30
Window("Book1_2").Window("Open").WinObject("MSO Generic Control Container").Click 42,98
Window("Book1_2").Window("Open").WinListView("SysListView32").Select "AppSet Building.xls"
Window("Book1_2").Window("Open").Click 535,323

问题:发现点击菜单按钮和desktop的两个控件都是WinObject,竟然都是由坐标来定位的。
有什么办法可以让它们定位更准确嘛?除了用键盘这个方法。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2008-2-1 15:08:50 | 只看该作者
那个坐标,你是如何录制上去的
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2008-2-1 15:12:18 | 只看该作者
这段脚本是完全录制的,我没有任何改动。
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2008-2-1 15:44:56 | 只看该作者
qtp录制windows 程序,不能识别就统一为winobject类型.录制WinObject是会把鼠标点击对象的坐标也录下来的.如果程序可能的话,可以尽量的避免为好.如:点击office的工具栏的打开操作,你可以改为用菜单的打开操作,还有在文件打开的对话框中,不要直接点击Desktop,而是从路径的下拉框中选择Desktop.当然如果你就是要测试office工具栏上的打开操作,那就另当别论了.如果你的目的是要打开一个xls文件,那就可以尽量的避免.
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2008-2-1 15:59:40 | 只看该作者
恩,在excel里我知道是可以避免的。只是这里我是举个例子,我的测试系统里也有这个问题,我没法拿出来演示,我发现excel里也有这个问题,所以就拿上来求教了。我的系统里是没法用键盘规避掉的,只能用点击。

其实我是想知道怎么解决WinObject准确定位的问题。高手们,可以用API嘛?但是我不会这个哦,对于Open对话框的操作API又该怎么写?
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2008-2-4 20:17:35 | 只看该作者
getmenu获取菜单句柄
getmenuitemid获取所用的菜单功能按钮id
sendmessage发送点击命令过去,sendmessage中的第二个参数用WM_COMMAND,这个参数在qtp里必须直接使用其16进制数值,我记得好像是这样的
sendmessage(窗口句柄,&h0111,菜单按钮的id,0)
如果想点工具栏上的就换获取工具栏按钮的函数,sendmessage应该都是一样的
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-9-25 12:17 , Processed in 0.080589 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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