51Testing软件测试论坛
标题:
QTP无法识别WPF程序的弹出式(Popup)菜单
[打印本页]
作者:
yyzz913
时间:
2012-11-20 16:10
标题:
QTP无法识别WPF程序的弹出式(Popup)菜单
弹出式的菜单,点击按钮后才会弹出,鼠标点击其他地方的时候或者选择菜单项后就会消失,这样的话我用QTP自带的object spy识别的时候无法定位到,录制的时候在弹出的菜单上做操作也不会进行录制,好像是因为popup的菜单和程序主窗口不在同一个frame上面。这种问题有什么好的解决方式么?求高手指点,谢谢!
我试过用虚拟对象,貌似也没法定位到该控件
作者:
yyzz913
时间:
2012-11-20 17:09
补充一下,我把录制方式调整到“Record and Run test on any windows-based application”,录制的时候对弹出菜单上的操作还是不会进行录制。
作者:
jack_loo
时间:
2012-11-21 16:20
QTP对弹出式菜单无法录制,但可以通过某种方式(如发送Click x, y, micRightBtn)调出弹出式菜单后,通过Desktop.childobjects获取一个ispopupwindow=true和istoolwindow=true的window,辅助上弹出式菜单大小通常不变的属性,就能定位到这个对象,然后直接对这个对象执行click x,y,x,y需要你想办法获得,比如通过循环语句控制鼠标坐标移动,在每个点上点击后CaptureBitmap保存成带有xy坐标的图片,你再看哪些图片上有你想要的操作,那个坐标就是你应该写点坐标。
作者:
yyzz913
时间:
2012-11-22 15:40
QTP对弹出式菜单无法录制,但可以通过某种方式(如发送Click x, y, micRightBtn)调出弹出式菜单后,通过De ...
jack_loo 发表于 2012-11-21 16:20
非常感谢!我试试这种方式
作者:
yyzz913
时间:
2012-11-22 16:43
回复
3#
jack_loo
用你说的方法试了下,分别尝试了取桌面和该WPF程序的所有子对象,仅符合ispopupwindow属性等于True这一条件的对象就一个没有,运行结果windowcount为0
代码如下:
WpfWindow("MainWindow").WpfButton("消息").Click
'程序窗口名为MainWindow,点击按钮后该popup菜单弹出
Set popupDescription=Description.Create
popupDescription("ispopupwindow").value="True"
'popupDescription("istoolwindow").value="True"
Set childobjects=Desktop.ChildObjects(popupDescription)
'Set childobjects=WpfWindow("MainWindow").ChildObjects(popupDescription)
Dim windowcount
windowcount=childobjects.count
msgbox windowcount
最后还是找开发商量了下,将使用的控件改了,不用这种弹出式菜单了。
非常感谢你的答复!
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/)
Powered by Discuz! X3.2