51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2755|回复: 6
打印 上一主题 下一主题

[原创] Object not visible的问题

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2011-4-13 11:46:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 situjm 于 2011-4-13 11:50 编辑

被测程序中,TAB选项卡有两个标签,标签A下有"OK"和"CANCL"两个BUTTON,另一个标签B下,有一个"CheckBox"。默认界面在标签A下。如下图:
标签A:

标签B:

对象都是可识别的,也存在对象库里了,但是点击标签A下的"OK"和"CANLE"两个BUTTON的时候,却提示"Object not visible"(激活和重设对象都试过了)
语句如下:
Dialog("Dialog").WinButton("OK").Click

Dialog("Dialog").WinButton("text:=OK").Click

而切换到选项卡标签B下,把"CheckBox" SET "ON",却能正常执行。
我用GETRO读该按钮的VISIBLE属性是可见的,用CHECKPOINT检查,该按钮也是存在的。运行result中,也明显能看到他CLICK动作是DONE了的(实际程序上没点击)。但是下面却紧跟一个警告,然后就一个Object not visible的错误。提示信息:
y = 93
x = 141
window id = 1
Visible = -1
Text = OK
simclass = Button
Native Class = Button
miccommentproperty =
hwnd = 68460

问题出在哪里?按钮应该是唯一的。程序设计这两个按钮点击后的效果,是该按钮要消失,执行失败跟这个有关吗?该怎么改?

另外的问题,如果对象库里相同描述的对象不止一个,用什么方法能信息论快捷的找到对象的唯一标识?对象那么多属性,难道要一个个的去找?(请说详细一点,本人菜鸟)

刚开始怕按钮是被其它对象挡着了,但是一想,另一标签下的CheckBox没事,应该不是这个原因吧。然后怀疑是对象运行中属性发生了变化,于是分别用GETTO和GETRO读了些属性出来(该程序是把很多控件集中在一个CONTAINER内,用SPY只点到外面的框,点不了里面的控件。)
msgbox Dialog("Dialog").WinButton("OK").GetTOProperty("text") OK
msgbox Dialog("Dialog").WinButton("OK").GetROProperty("text") OK
msgbox Dialog("Dialog").WinButton("OK").GetTOProperty("window id") 1
msgbox Dialog("Dialog").WinButton("OK").GetROProperty("window id") 1
msgbox Dialog("Dialog").WinButton("OK").GetTOProperty("nativeclass") button
msgbox Dialog("Dialog").WinButton("OK").GetROProperty("nativeclass") button
msgbox Dialog("Dialog").WinButton("OK").GetTOProperty("simclass") button
msgbox Dialog("Dialog").WinButton("OK").GetROProperty("simclass")
msgbox Dialog("Dialog").WinButton("OK").GetTOProperty("miccommentproperty")
msgbox Dialog("Dialog").WinButton("OK").GetROProperty("miccommentproperty")
msgbox Dialog("Dialog").WinButton("OK").GetTOProperty("x") 141
msgbox Dialog("Dialog").WinButton("OK").GetROProperty("x") 141
msgbox Dialog("Dialog").WinButton("OK").GetTOProperty("y") 93
msgbox Dialog("Dialog").WinButton("OK").GetROProperty("y") 93
msgbox Dialog("Dialog").WinButton("OK").GetTOProperty("visible") true
msgbox Dialog("Dialog").WinButton("OK").GetROProperty("visible") true
msgbox Dialog("Dialog").WinButton("OK").GetTOProperty("hwnd") 68460
msgbox Dialog("Dialog").WinButton("OK").GetROProperty("hwnd") 68460

本帖子中包含更多资源

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

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

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2011-4-13 11:58:54 | 只看该作者
本帖最后由 situjm 于 2011-4-13 14:23 编辑

补充一下,这两个按钮,即使切换到标签B中(即这两个按钮已经被挡住了),但是GETRO出来的VISIBLE属性还是可见的。只有在程序点击OK或者CANCLE按钮后,这两个按钮消失后,才会提示错误。按钮消失效果如下:

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2011-4-13 15:31:12 | 只看该作者
没人理我的?名位大佬,救命~~~~这个问题已经困了我快两个星期了。一直百度啥的,都没搞掂。再不弄好,我要疯了。现在是用直接点击坐标的方法暂时应付一下,但也不是长久之计啊。
UP
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2011-4-14 08:50:22 | 只看该作者
你确定句柄值是一直不变的吗
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2011-4-14 09:17:57 | 只看该作者
你说的是HWND值吗?程序不关闭的话,是一直不变了。关了再开就会变。
我这是把对象加到对象库并录制后,在没关闭程序的情况下直接回放的,当时没用句柄属性。
发现回放不了,以为有相同按钮,于是才加的其它属性,结果还是回放不了。
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2011-4-14 12:06:42 | 只看该作者
Dialog("Dialog").WinButton("text:=OK").Click

描述性语句中只有一个"text:=OK"是不够的吧,多添加几个属性试试看
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2011-5-5 10:19:42 | 只看该作者
我也出现了相同的问题,LZ问题解决没?
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-20 08:47 , Processed in 0.064481 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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