致力于软件自动化测试的研究和探索
[SilkTest]如何为DialogBox定义Invoke方法
上一篇 /
下一篇 2008-10-07 12:57:30 / 天气: 晴朗
/ 心情: 平静
/ 个人分类:蓝天测试
7M&Dwwq;R7?0 有时我们会遇到主窗体是DialogBox的情况,比如Windows的命令行窗体。一般我们启动主窗体时都是通过Invoke的方法实现的,但是DialogBox 是没有Invoke方法的,因此DialogBox是无法通过Invoke来启动的;因此我们只能通过点启动栏的菜单来启动窗体,或通过Run窗体来启动,但有一个问题出现了:当不同的系统(比如XP,VISTA),不同的语言系统(如中文,德文系统)的情况下,我们往往需要手工进行配置一下才可以进行操作,很不方便,而且对启动栏菜单的操作的稳定性也不是很好,所以很有可能在跑脚本的时候挂掉。 51Testing软件测试网Hq2^M/LB"RYICY
51Testing软件测试网D
Z*ZjTD1wG
这里给朋友们分享一个如何像启动MainWin窗体一样启动DialogBox的方法。首先讲下这样做的好处:方便(无需进行任何配置,可在任何系统,语言下运行),快速(从命令行启动肯定比点击操作要快咯!),稳定(因为不涉及到对象识别的问题,因此稳定性大大提高)。然后再讲下操作流程(其实非常简单):1. 建一个虚的主窗体(即现实并不存在这样的主窗体,只是你自己设定的),目的是启动目标DialogBox。 2.在DialogBox实现一个 Invoke方法,该方法其实是通过引用上面设定的主窗体的Invoke方法实现的。
j+FZcI C051Testing软件测试网*aBHY@5]D#h8ZSE
o
最后给大家一个关于启动命令行窗体的实例:
tf B5zb-k:~L0 //*******************************************51Testing软件测试网Lp
kwOU2i6v
// Descrīption: Define a mainwin for DialogBox51Testing软件测试网B7lR#L"ioQ
// Author: LantianWei51Testing软件测试网v#}$nn:d
y
// Date: Sep 16, 2008
MDH Glx0?0 // History: None
!r0P$S0]vY4s2o;W0 // Notice: csWinDir is dynamically getting for ‘windows’ path51Testing软件测试网#B0S:Vr{6Ie
//*******************************************
_~%t9x*GLKph0 window MainWin System32Cmd51Testing软件测试网&ym'VmR"`
const sCmdLine = "{csWinDir}\system32\cmd.exe"
*}Le&c%@\,X:`$s0
_:kSNeTv7Qp2w6s0 //*******************************************
GL5[m:iKWI0 // Descrīption: Define method ‘Invoke’ for DialogBox
A"H:D nRug ^:w0 // Author: LantianWei51Testing软件测试网'P
r8MY:B*o }&VE
// Date: Sep 16, 200851Testing软件测试网x)tv%G
\
// History: None
Yd ^{;a0 //*******************************************51Testing软件测试网"y,j9Sx/Y HA
window DialogBox wSystem32Cmd
~i+^,aIBB7r&z0 tag "*cmd.exe*"
6]FW*V d_8}d{6Q7r
|0
%VR:Qp)iXS,o%O0 Invoke()51Testing软件测试网/E#T8S!m)dr
do51Testing软件测试网2C]B{4d5m
System32Cmd.Invoke()
A[X
MAK3b+J8}0 Except51Testing软件测试网4I[1tp*@N*`
51Testing软件测试网+T
TB&^{5Wz-A
希望以上内容对大家有点帮助!51Testing软件测试网n
P"q2wH&v+Q0xG@
1W|-M!fT0
#lCix~ d051Testing软件测试网l|X(o,\ 更多精彩,请看www.lantianwei.com51Testing软件测试网O1l.n;Y8M\rr
收藏
举报
TAG:
蓝天测试