3.9.3 纯VBS调用API实现简单GUI自动化
在本章的最开始已经提到过了VBS是不可能直接实现调用Win32 API的,因此,QTP才提供了一个Extern接口方法供自动化测试工程师调用。而且,本人其实已经说明了Extern是QTP中的一个保留对象,既然是保留对象,那就一定可以在注册表中找到它创建此COM对象所对应的ProgID,如图3-114所示。
图3-114
从图3-114中可以看见Extern的ProgID值已经被暴露出来了,并且可以通过Icons项来找到相应的库路径:D:\Program Files\HP\QuickTest Professional\bin\MicExternCall.dll,这就可以通过CreateObject创建一个新的Extern实例作为独有的对象了,QTP启动时即调用的保留对象。它具体有什么样的好处呢,一起来看一下,直接在VbsEdit中创建此ActiveX com对象。
'创建Extern对象的会话实例 Set Extern = CreateObject("Mercury.ExternObj") |
在写入以上脚本之后,可以在VbsEdit中的Object Browser下找到已经实例化的对象,如图3-115所示。
图3-115
同时在使用此对象时,VbsEdit会自动加载相应的属性,如图3-116所示。
图3-116
注意:如果是第一次在VBS中直接创建此对象,可能会出现问题,需要先注册此DLL或者直接在VbsEdit的References中进行注册,如图3-117所示。
图3-117
如图3-117所示,在VbsEdit中引用需要的库后,工具会自动帮助我们进行注册,注册完毕之后即可直接在VBS中运行调用,包括QTP关闭状态下。一起来看几个简单的例子。