51Testing软件测试论坛

标题: 每日一问(2012-09-21) [打印本页]

作者: haoainics1    时间: 2012-9-21 12:32
标题: 每日一问(2012-09-21)
1。环境.net 3.5 工具qtp11
2.程序为.net写的window程序(在一个window中嵌入了一张从网络下载的地图)
3.如何去识别这个地图对象(网上有高人说:用注册异类子控件强制注入开启HOOK ,我已经使用了没有用)
4.附鉴定属性(识别为WinObject)
"Class Name:=WinObject",
"abs_x:=188",
"abs_y:=167",
"attached text:=",
"enabled:=True",
"focused:=False",
"hashscroll:=False",
"hasvscroll:=False",
"height:=557",
"hscrollpagesize:=",
"hscrollposition:=",
"hwnd:=3475878",
"leftscrollbar:=False",
"maxhscrollpos:=",
"maxvscrollpos:=",
"minhscrollpos:=",
"minvscrollpos:=",
"nativeclass:=TTRTMap",
"object class:=TTRTMap",
"regexpwndclass:=TTRTMap",
"regexpwndtitle:=",
"rightaligned:=False",
"righttoleftlayout:=False",
"righttoleftreading:=False",
"text:=",
"va_name:=",
"visible:=True",
"vscrollpagesize:=",
"vscrollposition:=",
"width:=1250",
"window id:=3475878",
"windowextendedstyle:=65536",
"windowstyle:=1442840576",
"x:=191",
"y:=170"
作者: haoainics1    时间: 2012-9-21 13:26
无人能解?????!!自己先顶一下
作者: lsekfe    时间: 2012-9-21 13:28
帮顶下吧!
作者: jacksboy    时间: 2012-9-23 14:26
如果是winform程序,你选择.net插件,在qtp里有个专门针对.net的 spy可以识别到.net 的winform对象,
或者可以试试加载wpf插件看看
作者: haoainics1    时间: 2012-9-23 14:54
回复 2# haoainics1


    开始识别前我就已经加载了。net插件和WPF还是识别成了WINDOWOBJECT
作者: haoainics1    时间: 2012-9-23 14:54
求解决!~~~~无人能解???自己在顶下
作者: xjwldlover    时间: 2012-9-23 15:22
本帖最后由 xjwldlover 于 2012-9-23 15:31 编辑

"用注册异类子控件强制注入开启HOOK"
你问一下开发人员嵌入的地图是使用什么编写的,给QTP加入相应的控件,假设是XCTROL。然后将你的应用程序注入到XCTROL的 HOOK中。这样重新识别时地图应该可以被识别成XCTROL控件。
如果你之前也是这么试验的,那这个方式可能就不适合~
****************************************
假设内嵌的地图控件是.net的WbfTreeView的变种(类型属性被修改过)TTRTMap,那新定义一个控件类型WbfTTRTMap,继承WbfTreeView对象,修改强制识别属性与TTRTMap一致。这样你在重新识别时,应该可以识别地图对象为WbfTTRTMap,并可以使用WbfTreeView的方法和属性。

我没有亲试这个方法,感觉内嵌对象的识别方式应该是大同小异,希望对LZ有帮助,如有错误,请各位指正~
*********维护对象类型参见 CreateUserDefinedObject Method




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