《软件自动化测试成功之道》节选4 - 标准控件的特殊问题的处理方法

本文介绍了解决在自动化测试中遇到的.NET ToolStrip控件点击问题的两种方法:使用ToolStrip对象的PerformClick方法和通过发送键盘按键来模拟点击。详细解释了两种方法的实现步骤和适用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

《软件自动化测试成功之道》节选4 - 标准控件的特殊问题的处理方法

http://www.china-pub.com/196509

 

 

 

 

 

 

在测试脚本回放过程中发现,单击.NETToolStrip控件的按钮有时候会失灵。大部分情况下,使用下面的脚本是可以成功单击ToolStrip按钮的:

w_ToolStrip.ClickItem(‘新增课件’);

但是有时候会“失灵”,即执行了单击操作但是没有触发单击操作所关联的事件,例如本来单击某个ToolStrip按钮会弹出窗口而没有弹出,但是查看Log可以看到执行了鼠标单击操作的信息,如图3.5所示:

 

 

 

这个问题的解决办法如下,使用ToolStrip测试对象的PerformClick方法,强制执行点击操作:

//.............................................................................

// 目的:单击指定ToolStrip控件上的某个按钮

// 输入参数:

//            ToolStrip : ToolStrip控件对象

//            Name : 按钮名称          

// 返回结果:无

// 注意事项:

// 作者:陈能技

// 日期:2008-5-22

//.............................................................................

Function ToolStrip_ClickItem(ToolStrip,Name);

  Var I :OleVariant;

begin

  For I := 0 to ToolStrip.Items.Count-1 do

  begin

    // 找到指定名称的按钮

    IF varToStr(ToolStrip.Items.Item[I].Text) = Name then

    begin

      // 执行单击操作

      ToolStrip.Items.Item[I].PerformClick();

      Break;

    end;

  end;

end;

使用PerformClick方法可以解决一部分问题,不能解决全部问题,当单击ToolStrip中的按钮会弹出另外一个窗口的情况下,PerformClick虽然能执行成功,但是弹出的窗口将挡住其释放鼠标按钮,并且会暂停脚本的执行,如图3.6所示:

 

 

 

 

在这种情况下,可以采用下面的方法:

//.............................................................................

// 目的:单击指定ToolStrip控件上的某个按钮

// 输入参数:

//            ToolStrip : ToolStrip控件对象

//            Name : 按钮名称          

// 返回结果:无

// 注意事项:解决弹出的窗口挡住其释放鼠标按钮并暂停脚本的执行的问题

//           这种方法在单击ToolStrip中的按钮会弹出另外一个窗口的情况下使用

// 作者:陈能技

// 日期:2008-5-22

//.............................................................................

Function ToolStrip_ClickItem_2(ToolStrip,Name);

  Var I :OleVariant;

begin

  For I := 0 to ToolStrip.Items.Count-1 do

  begin

    // 找到指定名称的按钮

    IF varToStr(ToolStrip.Items.Item[I].Text) = Name then

    begin

      // 执行单击操作

      ToolStrip.Items.Item[I].Select();

      ToolStrip.Keys(' ');

      Break;

    end;

  end;

end;

这种方法改用了对ToolStrip测试对象发送键盘按键的方式,首先使用ToolStrip测试对象的Select方法选中所需的按钮,然后发送一个空格键,模拟按下该按钮。

 

 

 

 

 

《软件自动化测试成功之道》节选4 - 标准控件的特殊问题的处理方法

http://www.china-pub.com/196509

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值