《软件自动化测试成功之道》节选5 - 第三方控件的测试方法
http://www.china-pub.com/196509
XtraNavBar是DevExpress套件中的一个控件,如图4.8所示界面中左边的控件。
在实际的测试项目中,我们发现测试工具不能很好地识别出该控件,录制下来的脚本如下所示:
procedure Test1;
var w1 ,w2,I: OleVariant;
begin
w1 := Sys.Process('NavBarNavigationPane').frmMain.WinFormsObject('navBarControl1');
w1.Click(77, 281);
w1.Click(79, 313);
w1.Click(76, 348);
w1.Click(88, 311);
可见脚本是位置敏感的,不能达到选择指定的某项的目的。下面介绍如何一步步解决这个问题。
我们首先通过查阅XtraNavBar控件所在的DevExpress套件安装后附带的帮助文档,了解控件的属性、行为。了解到该控件包含了Groups、ActiveGroup的概念,帮助文档中还付了一副图来说明这些概念,如图4.9所示。
由此可见,XtraNavBar中Group用于包含每一项绑定具体功能的项(Group Element),类似于Outlook中的邮件箱、日历、联系人、任务等。而ActiveGroup则是代表了当前打开的,处于激活状态的组,用户可以选择其中的项。
在TestComplete中用ObjectBrowser查看XtraNavBar控件,可以看到ActiveGroup和Groups,如图4.10和图4.11所示。
在了解到上面的信息之后,我们就可以尝试利用ActiveGroup和Group属性,看能否达到控制XtraNavBar控件的目的。结果我们发现,通过访问Groups中的Item(代表组中的某项),然后赋值给ActiveGroup,就能自动展开指定的组,选择指定的项,如下代码所示:
procedure Test1;
var w1 ,w2,I: OleVariant;
begin
w1 := Sys.Process('NavBarNavigationPane').frmMain.WinFormsObject('navBarControl1');
For I:=0 to w1.Groups.Count -1 do
begin
Log.Message(w1.Groups.Item_2[I].Caption);
If VarToStr(w1.Groups.Item_2[I].Caption) = 'Notes' then
begin
//w1.Groups.Item_2[I].NavigationPaneVisible := true;
//w1.Groups.Item_2[I].Expanded := True;
w1.ActiveGroup := w1.Groups.Item_2[I];
end;
End
end;
《软件自动化测试成功之道》节选5 - 第三方控件的测试方法
http://www.china-pub.com/196509