1

我有問題獲得Visual Studio 2013的編碼UI測試框架,以始終如一地找到HtmlDocument編碼UI測試 - 一致發現HtmlDocument

我剛纔剛剛遇到過這個問題,它之前的工作很棒。不幸的是,自從我創建這些測試以來,很多事情都發生了變化(包括我的Visual Studio和Internet Explorer版本等),因此很難確定是什麼原因導致了這種情況。而且,它大約2/3的時間工作的事實使得更難以排除故障。

在我的測試中,我有一組不同的用戶登錄到測試站點並執行各種操作。爲了做到這一點,我通過UI測試生成器捕獲了在按住shift鍵的同時右鍵單擊Internet Explorer按鈕的操作,然後單擊「以不同的用戶運行」菜單選項。測試繼續輸入用戶憑證並加載其主頁。 (每個用戶在我的機器上都有一個配置文件,並且他們都有Google作爲他們的主頁。)撥打NavigateTo()BrowserWindow允許我加載該網站,測試正式從那裏開始。

注:如果可以找到網頁,有對付任何前述HtmlDocuments或BrowserWindows沒有問題

當我嘗試打電話NavigateTo(),給我下面的錯誤掛斷正在發生。

... threw exception. 
Microsoft.VisualStudio.TestTools.UITest.Extension.UITestControlNotFoundException: 
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: 'Internet Explorer' 
---> System.Runtime.InteropServices.COMException: 
    Error HRESULT E_FAIL has been returned from a call to a COM component.. 

編輯:有時候,我得到這個錯誤,而不是:

...threw exception. Microsoft.VisualStudio.TestTools.UITest.Extension.UITestControlNotFoundException: Microsoft.VisualStudio.TestTools.UITest.Extension.UITestControlNotFoundException: Unable to find Windows Internet Explorer window with 'Google - Internet Explorer' in the title. ---> Microsoft.VisualStudio.TestTools.UITest.Extension.UITestControlNotFoundException: The playback failed to find the control with the given search properties. Additional Details: 
TechnologyName: 'MSAA' 
ControlType: 'Window' 
Name: 'Google - Internet Explorer' 

產品類別: 'IEFrame' ---> System.Runtime.InteropServices.COMException:錯誤HRESULT E_FAIL已從調用返回COM組件..

我已經在嘗試BrowserWindow各種WaitFor來電,HtmlDocument

我試過包括一個try/catch區塊,它會忘記HtmlDocument,如果它失敗並再次嘗試(所以它研究HtmlDocument)以防萬一,但這也不起作用。

搜索大量的知識並沒有幫助我弄清楚如何解決這個問題(使用BrowserWindowsHtmlDocuments我似乎只能找到處理查找特定控件的問題是如此微不足道的事情)。

有沒有人對我有任何想法或建議我還可以嘗試什麼?

+0

我想我需要提供有關我的開發環境的信息,對吧? - Windows 7 Professional SP1 - Visual Studio 2013 Update 2 - Internet Explorer 11.0.5 – JibbaJamba 2014-09-22 20:40:00

回答

1

好吧,我撒謊。我發現了什麼真的固定它。我在運行測試的機器上給了我的測試帳戶管理權限。簡單。這可能並不理想,但如果測試賬戶被入侵,其他任何地方都無法做任何事情。

它似乎運行沒有管理權限的應用程序,然後嘗試在編碼的UI中捕獲它測試失敗,因爲應用程序的權限比Visual Studio的實例少。

所以我的基於角色的測試工作,他們是快速。

+1

如果您在問題上的其他答案錯誤,請編輯答案以合併此答案,而不是將其添加爲新答案。請將這兩個答案合併成一個並刪除另一個。 – Ram 2015-02-17 23:46:54

0

我通過減少運行測試的PC上的計算負載來解決此問題。看起來,運行應用程序沒有「負擔」的系統執行得很好。我不知道什麼條件會造成「負擔」的環境。

+0

我幾乎在WaitForControl上看到了幾乎所有的問題。我使用TryGetClickablePoint()來代替(我不記得我在哪裏找到這個建議)。令人沮喪! – JibbaJamba 2014-10-08 22:07:07

+0

像這樣的時間問題指向WaitForControlReady和「完成」的瀏覽器狀態的鬆散耦合本質。不確定什麼是完美的解決方案,但請放心,它必須位於事件處理程序中,而不是計時器。只是減少客戶端窗口的負載應該與這個問題無關。 – 2015-02-04 16:50:23