2010年6月30日 星期三

執行Coded UI Test 出現例外:The playback failed to find the control

過程

在本機執行 Coded UI Test 好好的,改到 Test Agent 上執行,卻發生測試的例外:

Microsoft.VisualStudio.TestTools.UITest.Extension.UITestControlNotFoundException: The playback failed to find the control with the given search properties. Additional Details: 
TechnologyName:  'MSAA'
ControlType:  'Button'
Name:  'Close'
 ---> System.Runtime.InteropServices.COMException: Error HRESULT E_FAIL has been returned from a call to a COM component..

原因

錄製測試時,是使用本機 (Windows 7 En + IE 8) 來錄製的。該測試最終時會關閉瀏覽器。

Test Agent 上則是 (Windows 2003 + IE6)。故執行測試時, IE 6 上並沒有 “Close” 的 Control。因為不同文化的關係,中文 IE 上應該是「關閉」而非「Close」。

解法

目前我並不清楚碰到不同語言版本的瀏覽器時,Coded UI Test應該如何處理,但微軟的 Visual Studio Test tools 有關閉瀏覽器的 API 可直接呼叫,就省去以名稱來找 Control 的困擾

var browser = BrowserWindow.Launch(new System.Uri(this.LauchBrowserParams.Url));
browser.Close();

當然,需要手動修改程式。

沒有留言:

Share with Facebook