关于对象识别的问题,关注的同道请进,无法一句话描述清楚...
举个例子:A窗口下有A1子窗口,B窗口下有B1子窗口,但是A1子窗口和B1子窗口中的控件是完全相同的,即在编写代码时用的是New XXXForm()这段代码。
针对这种情况,我们在识别对象时,也需要对A1和B1子窗口都进行识别和维护,那么,维护的内容(即修改对象名称)都是一样的,不知有没有比较省力的方法,让维护B1子窗口时,能直接利用A1子窗口的维护成果。 关联对象库 这就是对象库的好处了,很多人都使用录制的方式在使用QTP,而我本人一直使用的是编写的方式在使用QTP,我都采用公共对象库~~~
每个控件也就是一个而已,用唯一的属性来标示他们,如果说他们属性改了,我根本不需要改对象库,仅仅是改对象的属性描述就OK了 编写脚本肯定会用对象仓库的啊,就是在建对象仓库的时候,遇到了上面的问题!!
重新把场景描述一下:
主窗口->(点击[功能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 编辑 ]
页:
[1]