《軟體自動化測試成功之道》節選5 - 第三方控制元件的測試方法

TIB發表於2010-05-03

《軟體自動化測試成功之道》節選5 - 第三方控制元件的測試方法

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

XtraNavBarDevExpress套件中的一個控制元件,如圖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套件安裝後附帶的幫助文件,瞭解控制元件的屬性、行為。瞭解到該控制元件包含了GroupsActiveGroup的概念,幫助文件中還付了一副圖來說明這些概念,如圖4.9所示。

 

 

 

由此可見,XtraNavBarGroup用於包含每一項繫結具體功能的項(Group Element),類似於Outlook中的郵件箱、日曆、聯絡人、任務等。而ActiveGroup則是代表了當前開啟的,處於啟用狀態的組,使用者可以選擇其中的項。

TestComplete中用ObjectBrowser檢視XtraNavBar控制元件,可以看到ActiveGroupGroups,如圖4.10和圖4.11所示。

 

 

 

 

在瞭解到上面的資訊之後,我們就可以嘗試利用ActiveGroupGroup屬性,看能否達到控制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

相關文章