過程
在本機執行 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();
當然,需要手動修改程式。
沒有留言:
張貼留言