《軟體自動化測試成功之道》節選4 - 標準控制元件的特殊問題的處理方法

TIB發表於2010-05-02

《軟體自動化測試成功之道》節選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

 

相關文章