注:本文最早发表在《51测试天地》第九期
检查Tab顺序
使用与检查焦点类似的方法,可以检查界面中控件之间的焦点跳转顺序是否正确,也就是我们通常所说的Tab顺序的检查。
检查焦点的跳转顺序的目的是为了提高用户的工作效率,在输入密集型的用户界面中,用户通常大部分情况下是在录入数据,如果不能很好地支持键盘TAB键、快捷键,而是要用户每输入一个数据就要移动鼠标,再次定位,则会耗费很多时间,不能有效地提高用户的工作效率。
检查焦点的跳转顺序需要注意遵循一定的原则,例如“从上到下”、“从左到右”的原则。并且界面控件的排列也需要遵循类似的原则,更重要的是,需要在设计时考虑用户的思维模式,按用户业务场景中工作流和惯用的数据记录先后循序方式来安排界面布局,以及设置控件的TAB顺序。
那么如何自动化地实现TAB顺序的检查呢?在QTP中,可以沿用检查控件焦点的方法,通过判断控件的Focused属性来判断当前是否跳转到该控件上。例如下面的QTP脚本所示:
' 启动应用程序
SystemUtil.Run "C:/Program Files/Mercury Interactive/QuickTest Professional/samples/flight/app/flight<chmetcnv tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="4" unitname="a"><span lang="EN-US">4a</span></chmetcnv>.exe"
' 定位到程序窗口,并判断窗口中的默认焦点是否在正确的位置
Dialog("Login").Activate
Dialog("Login").WinEdit("Agent Name:").CheckProperty "focused","True"
' 在控件上单击Tab键,检查焦点是否跳转到正确的位置
Dialog("Login").WinEdit("Agent Name:").Type micTab
Dialog("Login").WinEdit("Password:").CheckProperty "focused","True"
Dialog("Login").WinEdit("Password:").Type micTab
Dialog("Login").WinButton("OK").CheckProperty "focused","True"
Dialog("Login").WinButton("OK").Type micTab
Dialog("Login").WinButton("Cancel").CheckProperty "focused","True"
Dialog("Login").WinButton("Cancel").Type micTab
Dialog("Login").WinButton("Help").CheckProperty "focused","True"
该脚本实现了检查如图3所示的Flight程序登录界面的TAB跳转顺序是否正确的功能。
<shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><stroke joinstyle="miter"></stroke><formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f></formulas><path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></path><lock aspectratio="t" v:ext="edit"></lock></shapetype><shape id="_x0000_i1025" style="WIDTH: 240pt; HEIGHT: 147.75pt" type="#_x0000_t75"><imagedata o:title="" src="file:///D:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/01/clip_image001.png"></imagedata></shape>
图3 Flight程序登录界面
仍然使用CheckProperty来检查focused属性,然后判断属性值是否为True,如果为True,则表示当前焦点已经正确地跳转到该控件上,检查完后要执行一次TAB操作,方法是通过使用测试对象的Type方法,输入参数为micTab,micTab是QTP内置的常量值,表示按下TAB键。
分享到:
相关推荐
React-Native tabbar 的简单使用
NULL 博文链接:https://zzc1684.iteye.com/blog/2334629
解决Vue对Element中的el-tab-pane添加@click事件无效
将下载的crx文件拖至谷歌浏览器的扩展程序中,IE-Tab-Multi是将谷歌浏览器的内核切换到IE内核,使其在谷歌中利用IETAB来打开只在IE兼容的网站
该组件仿造laravel-admin form表单自带的tab组件。 区别在于laravel-admin自带的tab标签切换组件只能出现form表单的顶部所有的输入只能在tab标签内;...而该组件允许tab标签切换在form表单的任何位置,与代码顺序相关。
JQ实现TAB选项卡登录界面,兼容IE8,IE8以下版本不支持。
仿QQ--tab切换动画实例,亲测可用。
:warning: 该模块处于测试版,可能会导致一些奇怪的故障。 请报告此仓库中的错误。 注意: 安装 将插件添加到devDependencies npm install -D cypress-plugin-tab 在cypress/support/index.js的顶部: require ...
一行代码底部导航--Tab切换栏-demo.rar
例如:tabs1、tabs2、tabs3、tabs4 tabs2改为tabs4(往后移)则顺序变为tabs1、tabs3、tabs4、tabs2; tabs4改为tabs2(往前移) 则顺序变为tabs1、tabs4、tabs2、tabs3。
Tab Control 控件的实现,添加背景色,用户登录
MFC中控件的TAB顺序,用来自己备忘的。。
react-native-scrollable-tab-view实现的导航效果,原文链接:http://blog.csdn.net/xiangzhihong8/article/details/72730951
bootstrap-closable-tab.js扩展关闭全部和关闭其他,tab扩展增加、关闭
tab页的实现方法tab页的实现方法tab页的实现方法 tab页的实现方法tab页的实现方法tab页的实现方法
主要为大家详细介绍了bootstrap-closable-tab可实现关闭的tab标签页插件,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
react-native-scrollable-tab-view 这可能是我在Android上最喜欢的导航模式,但愿它在iOS上更常见! 这是React Native的非常简单的纯JavaScript实现。 有关此动画背后的工作原理的更多信息,请查看《 反弹”部分。 ...
day38-Mobile Tab Navigation(手机tab栏导航切换)
各页面状态(空白,错误,加载中)已自动处理 页面下拉刷新和上拉加载更多的方法已实现,并封装在tabUtil中,无需在page中书写. tab之间的切换逻辑已处理. 使用时需要做的: 拷贝 netUtil.js拷贝到utils目录下 lib文件夹...
bootstrap风格的动态添加tab页 tab页上有右键事件:关闭其他,全部关闭 另可自定义json配置右键菜单