google搜索 站内搜索                 软件测试门户 | 软件测试培训 | 文章资料精选 | 软件测试论坛 | 测试解决方案 | 软件测试博客 | 测试招聘求职 
打印

[求助] 关于对象识别的问题,关注的同道请进,无法一句话描述清楚...

关于对象识别的问题,关注的同道请进,无法一句话描述清楚...


举个例子:
A窗口下有A1子窗口,B窗口下有B1子窗口,但是A1子窗口和B1子窗口中的控件是完全相同的,即在编写代码时用的是New XXXForm()这段代码。
针对这种情况,我们在识别对象时,也需要对A1和B1子窗口都进行识别和维护,那么,维护的内容(即修改对象名称)都是一样的,不知有没有比较省力的方法,让维护B1子窗口时,能直接利用A1子窗口的维护成果。

TOP

关联对象库

TOP

这就是对象库的好处了,很多人都使用录制的方式在使用QTP,而我本人一直使用的是编写的方式在使用QTP,我都采用公共对象库~~~
每个控件也就是一个而已,用唯一的属性来标示他们,如果说他们属性改了,我根本不需要改对象库,仅仅是改对象的属性描述就OK了

TOP

编写脚本肯定会用对象仓库的啊,就是在建对象仓库的时候,遇到了上面的问题!!
重新把场景描述一下:
主窗口->(点击[功能1]出现)子窗口A->点击[功能A1出现]子子窗口A1
   ->(点击[功能2]出现)子窗口B->点击[功能B1出现]子子窗口B1
关键问题在于:子子窗口A1 和 子子窗口B1,它们具有完全一样的控件,从程序实现的角度而言,这两个子子窗口都来源于同一个窗口类(如 CFrameWin),即都是通过调用New CFrameWin()语句生成的,所不同的只是这段代码一个是出现在子窗口A的代码行中,一个是出现在子窗口B的代码行中。

那么,我们建立对象仓库的时候,在为子窗口A识别对象时,将识别到子子窗口A1,并且对它进行必要的维护,而在为子窗口B识别对象时,则将识别到子子窗口B1,并且也要对它进行必要的维护。这两次维护工作一般而言所做的工作是完全一样的! 试想,如果CFrameWin被应用到许多的功能之中,那么我们就需要做很多次相同的维护工作,很麻烦啊。

[ 本帖最后由 happychap 于 2008-9-29 15:36 编辑 ]

TOP

本功能由奇虎搜索实现

相关主题

标题 作者 最后发表
关于自动抄表系统的测试 orange1997orang 2004-12-22
点击阅读更多关于的相关帖子  更多相关主题
 
当前时区 GMT+8, 现在时间是 2008-12-5 18:54Copyright(C)上海博为峰软件技术有限公司 2001-2007 电话:021-64471599-8017
当您在访问网站、论坛及博客过程中遇到问题时可发送email:webmaster@51testing.com或发送论坛短信至管理员风在吹