[求助]object not visible
运行程序中遇到object not visible的问题测试程序描述:
测试的程序框架为一个主窗口,主窗口里可以打开各种不同类型的标签页窗口,类似wps、firefox那样,具有多tab,不同类型的标签页会有不同的工具栏,有的有一个工具栏,有的有多个
程序使用描述性编程
set objtbl = description.create()
objtbl("name").value="标签2"
if window(mainwindow).window(objtbl).exist(1) then
window(mainwindow).window(objtbl).activate
else
'出错提示
end if
出错的位置在“window(mainwindow).window(objtbl).activate”,就是说已经判断过了窗口是存在的
出错复现步骤是一开始先激活另一个标签页,例如叫标签1,从界面标签1到界面标签2切换时,由于具有不同的工具栏,会导致整个标签页面自适应的调整高度
这里有一个奇怪的现象,虽然提示了 object not visible,但是这个“标签2”界面却仍然被激活了
个人判断出错原因:
由于不同类型标签页工具栏个数及类型不同,当从标签页1激活标签页2时,整个标签页的位置会自适应的移动,在标签页2从A位置移动到B位置的过程中,Qtp没能“看见”程序,就是QTP在点击了标签页2后,再去判断是否已经激活了此页面时,没有“看见”这个页面,问过开发人员,他们没有做过什么修改
请各位提供了可行的解决办法
如下是手动画了个界面展示图,(软件是公司的,直接截图可能会违法公司规定)
如果标签页2已经被激活,仅仅是想去掉弹出的“object not visable”对话框。
那很简单。使用qtp自带的场景错误恢复机制就可以。 if window(mainwindow).window(objtbl).exist(1) then
‘因为窗口的属性为enable = false不可用。
可以这样试一下。
waitProperty("enable") = true
window(mainwindow).window(objtbl).activate
else
'出错提示
end if 回复 3# 17800455
试过你的方法,不能解决这个问题。因为是类似wintab的标签页,但是又不是标准的wintab,被处理过,所以直接使用spy是捕捉不到这些标签页,我是将主窗口加入仓库时看到这些标签是被识别成window的 对于这个问题,我重点是想知道为何出现这个问题,是预防出现,查了国内外的一些类似问题,暂时没有找到为何出现这个问题,
这里在概要描述下问题出现的原因
窗口A在mousedown点击后位置会从(X,Y)移动到(M,N),窗口A开始时位置在(X,Y),当A.activate时,就提示“object not visible”,但是A此时也已经接受了activate动作,到了位置(M,N) 如果是远程桌面连接最小化了或者关闭了,怎么努力也是徒劳的
页:
[1]