致力于软件自动化测试的研究和探索

[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*ZjT D1wG
    这里给朋友们分享一个如何像启动MainWin窗体一样启动DialogBox的方法。首先讲下这样做的好处:方便(无需进行任何配置,可在任何系统,语言下运行),快速(从命令行启动肯定比点击操作要快咯!),稳定(因为不涉及到对象识别的问题,因此稳定性大大提高)。然后再讲下操作流程(其实非常简单):1. 建一个虚的主窗体(即现实并不存在这样的主窗体,只是你自己设定的),目的是启动目标DialogBox。 2.在DialogBox实现一个  Invoke方法,该方法其实是通过引用上面设定的主窗体的Invoke方法实现的。
j+FZcIC051Testing软件测试网*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
MDHGlx0?0      // History: None
!r0P$S0]vY4s2o;W0      // Notice: csWinDir is dynamically getting for ‘windows’ path51Testing软件测试网#B0S:Vr{6I e
      //*******************************************
_~%t9x*GLKp h0      window MainWin   System32Cmd51Testing软件测试网&ym'V mR"`
          const sCmdLine = "{csWinDir}\system32\cmd.exe"
*}Le&c%@\,X:`$s0
_:kSNeTv7Qp2w6s0      //*******************************************
GL5[m:iKWI0      // Descrīption: Define method ‘Invoke’ for DialogBox
A"H:DnRug ^:w0      // Author: LantianWei51Testing软件测试网'P r8MY:B*o }&VE
      // Date: Sep 16, 200851Testing软件测试网x)tv%G \
      // History: None
Yd^{;a0      //*******************************************51Testing软件测试网"y,j9Sx/Y H A
      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 T B&^{5Wz-A
    希望以上内容对大家有点帮助!51Testing软件测试网n P"q2wH&v+Q0xG@

1W |-M!fT0 

#lCix~ d051Testing软件测试网l|X(o,\

  更多精彩,请看www.lantianwei.com51Testing软件测试网O1l.n;Y8M \rr


TAG: 蓝天测试

引用 删除 windhoo   /   2009-07-23 18:35:04
还有一个方法,强制你的dialogbox从mainwin继承。
winclass CTest: MainWin

window CTest DTest
很好用。测试VisualStudio的时候,由于SilkTest无法找到menubar,将其认为是Dialogbox。我强制继承使用,没有什么问题。
 

评分:0

我来说两句

Open Toolbar