51Testing软件测试论坛

标题: Object not visible的问题 [打印本页]

作者: situjm    时间: 2011-4-13 11:46
标题: Object not visible的问题
本帖最后由 situjm 于 2011-4-13 11:50 编辑

被测程序中,TAB选项卡有两个标签,标签A下有"OK"和"CANCL"两个BUTTON,另一个标签B下,有一个"CheckBox"。默认界面在标签A下。如下图:
标签A:
[attach]72440[/attach]
标签B:
[attach]72441[/attach]
对象都是可识别的,也存在对象库里了,但是点击标签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
作者: situjm    时间: 2011-4-13 11:58
本帖最后由 situjm 于 2011-4-13 14:23 编辑

补充一下,这两个按钮,即使切换到标签B中(即这两个按钮已经被挡住了),但是GETRO出来的VISIBLE属性还是可见的。只有在程序点击OK或者CANCLE按钮后,这两个按钮消失后,才会提示错误。按钮消失效果如下:
[attach]72442[/attach]
作者: situjm    时间: 2011-4-13 15:31
没人理我的?名位大佬,救命~~~~这个问题已经困了我快两个星期了。一直百度啥的,都没搞掂。再不弄好,我要疯了。现在是用直接点击坐标的方法暂时应付一下,但也不是长久之计啊。
UP
作者: solar灬    时间: 2011-4-14 08:50
你确定句柄值是一直不变的吗
作者: situjm    时间: 2011-4-14 09:17
你说的是HWND值吗?程序不关闭的话,是一直不变了。关了再开就会变。
我这是把对象加到对象库并录制后,在没关闭程序的情况下直接回放的,当时没用句柄属性。
发现回放不了,以为有相同按钮,于是才加的其它属性,结果还是回放不了。
作者: solar灬    时间: 2011-4-14 12:06
Dialog("Dialog").WinButton("text:=OK").Click

描述性语句中只有一个"text:=OK"是不够的吧,多添加几个属性试试看
作者: mkk113    时间: 2011-5-5 10:19
我也出现了相同的问题,LZ问题解决没?




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