51Testing丛书连载:(五十二)精通QTP——自动化测试技术领航

发表于:2012-2-24 10:42

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:余杰 赵旭斌    来源:51Testing软件测试网

分享:

  请看以下脚本:

'定义变量

Const micLong = 3

Const micString = 8

Const micRef = 32768

Const BN_CLICK = 245

'创建Extern对象的会话实例

Set oExtern = CreateObject("Mercury.ExternObj")

'*************声明所有API函数方法*******************

oExtern.Declare micLong,"FindWindow","user32.dll", _

"FindWindowA",micString,micString

oExtern.Declare micLong,"FindWindowEx","user32.dll", _

"FindWindowExA", micLong,micLong,micString,micString

oExtern.Declare micLong,"PostMessage","user32.dll", _

"PostMessageA",micLong,micLong,micLong,micRef+micLong

oExtern.Declare micLong,"SetActiveWindow","user32.dll", _

"SetActiveWindow",micLong

'*****************************************************

'返回消息框窗口的句柄

hwndWindow = oExtern.FindWindow(vbNUllString,"hello")

'返回确定按钮的句柄

hwndButton = oExtern.FindWindowEx(hwndWindow,0,vbNullString,"确定")

'激活消息框窗口

oExtern.SetActiveWindow hwndWindow

'发送点击事件消息给确定按钮

oExtern.PostMessage hwndButton,BN_CLICK,0,0

'释放对象

Set oExtern = Nothing

  分析:

  以上脚本一共定义了4个API函数,分别是FindWindow、FindWindowEx、PostMessage、SetActiveWindow。第一个FindWindow是通过窗口title名来获取到窗口的句柄,FindWindowEx根据句柄和控件名来获取到控件的句柄,第三个函数PostMessage给控件传送消息,最后一个是SetActiveWindow代表激活窗口。脚本的执行过程主要是先返回窗口和控件的句柄,随后激活窗口,并为窗口下的按钮控件加入点击事件,最终释放对象。

3.9.4  总结

  本节主要对Extern对象进行了详细讲解,并且介绍了一些较为基础的API函数的使用方法,以及在VBS中直接使用API。其实API在实际的自动化测试中应用的频率并不是非常高。一旦在自动化测试过程中遇到一些比较特殊的问题,或者QTP无法解决的问题导致无法继续自动化测试时,API就能显现出它强大的威力了。举一个简单的例子:当QTP操控Web中的选取文件路径对象时就会卡在Dialog对话框上,一旦QTP激活了file控件并弹出对话框后,QTP就会变成,无法停止,也无法继续进行后续脚本的运行状态。只有手动关闭此对话框才可继续执行后续脚本。此种情况就可以使用本节讲到的API来解决。其实Win32已经提供了非常丰富的API供开发人员进行使用,测试人员还可以利用它来实现更多,只有你想不到,没有你查不到。

  知识点巩固和举一反三练习

  在QTP环境下利用Win32 api最大化当前打开的浏览器窗口。

  要求1:使用Extern对象。

  要求2:准备一个最小化的IE浏览器窗口。

本文选自《51Testing软件测试作品系列》之九——《精通QTP——自动化测试技术领航》。

本站经人民邮电出版社和作者的授权,近期将进行部分章节的独家连载,敬请期待!

版权声明:51Testing软件测试网获人民邮电出版社和作者授权独家连载本书部分章节。

任何个人或单位未获得明确的书面许可,不得对本文内容复制、转载或进行镜像,否则将追究法律责任。

相关阅读:

查看本书介绍>>

查看本书更多试读章节连载>>

查看软件测试作品系列其他书籍>>

33/3<123
重磅发布,2022软件测试行业现状调查报告~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计

法律顾问:上海漕溪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2023
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号