《软件自动化测试成功之道》节选4 - 标准控件的特殊问题的处理方法
2010-05-02 17:15
661 查看
《软件自动化测试成功之道》节选4 - 标准控件的特殊问题的处理方法
http://www.china-pub.com/196509
在测试脚本回放过程中发现,单击.NET的ToolStrip控件的按钮有时候会失灵。大部分情况下,使用下面的脚本是可以成功单击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
http://www.china-pub.com/196509
在测试脚本回放过程中发现,单击.NET的ToolStrip控件的按钮有时候会失灵。大部分情况下,使用下面的脚本是可以成功单击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
相关文章推荐
- 关于Web项目里的给表单验证控件添加结束时间不得小于开始时间的验证方法,日期转换和前台显示格式之间,还有JSON取日期数据格式转换成标准日期格式的问题
- 控件重叠透明问题的简单处理方法
- c#多线程访问控件问题处理方法一
- EasyUI tabs update 方法后控件无法渲染问题处理
- 《软件自动化测试成功之道》节选5 - 第三方控件的测试方法
- C# winform 控件间线程更新问题处理方法
- Repeater 控件中处理变量,后台方法,超链接权限问题
- 基于IE内核的WebBrowser控件,键盘消息需要特殊处理的问题
- 使用updatePanel控件出现sys...未定义问题的处理方法
- 关于jQuery load()方法加载页面后台发生异常而前台页面加载失败且没有任何展示信息的问题处理
- Apache2.4 通道异常问题处理方法
- python web 开发中的csrf_token问题及处理方法
- 关于 Ajax Post 的乱码问题处理方法
- 电脑内存常见问题处理方法
- pb 字符串汉字截断后 乱码问题处理--解决方法
- 【问题】HyperLink控件用Eval()方法绑定NavigateUrl时出现"服务器标记的格式不正确"
- new Date()问题在ie8下面的处理方法
- 3种方法轻松处理php开发中emoji表情的问题
- 关于流和缓冲区的理解以及一般标准输入问题的解决方法小结
- input类型为file时,chrome,FF和IE8的fakepath问题处理方法