2011-06-02 29 views
2

我正在尋找用QTP編寫的現有測試的替代方案,用於使用Borland C++編寫的Win32應用程序。 我的候選人是基於UI自動化的White,因爲它是本機解決方案,我可以使用.NET/C#創建我的測試,並且可以輕鬆地將其與nUnit和Hudson集成。測試自動化 - Win32應用程序 - 白色/ UI自動化 - 識別對象的問題

http://white.codeplex.com

MS UI自動化 http://msdn.microsoft.com/en-us/library/ms747327.aspx

UI驗證 http://uiautomationverify.codeplex.com

我使用的UI驗證作爲間諜,以確定我想在我的測試中找到對象的屬性。 或多或少,當我可以看到間諜中的某些東西時,我可以使用UI Automation/White找到它。 通常我沒有太多的問題與識別對象 ,但當我嘗試搜索標籤面板 中包含的選項卡內的一些內容或嘗試查看MenuItems菜單欄,然後​​出現問題。

UI自動化/用戶界面驗證工程是否已連線。當我運行UI驗證(1.0版本)時,我發現只有在設置「焦點跟蹤」選項並單擊目標對象或更改其上的鍵盤光標時,纔可以正確註冊對象 。否則就不可能找到它們。 用戶界面驗證程序可以顯示我的「標籤」面板中的子項。但我無法使用UI Automation/White找到它們。這是示例代碼:

Tab tab = window.Get(); ITabPage tabPage = tab.SelectedTab; AutomationElementCollection newCol = tabPage.AutomationElement.FindAll(TreeScope.Descendants,Condition.TrueCondition); window.Get(「buttonName」);

即使間諜看到孩子,集合也是空的。

  1. 你們有沒有一些White/UI自動化庫的經驗,他/她想與我分享?
  2. 我想實現跟蹤功能從間諜到我的測試。你能幫助我嗎?我正在努力研究UIA Verify Spy的代碼。我認爲,有負責追趕的對象兩大類:FocusChangeListener和FocusTracer - 這是代碼:

http://uiautomationverify.codeplex.com/SourceControl/changeset/view/9992#214260 http://uiautomationverify.codeplex.com/SourceControl/changeset/view/9992#214192

要求: 1. Windows SDK的 2. .NET 3.5 3.白色 4. UIA驗證碼

  1. 你有白/ UI自動任何更好的選擇mation?

R.

+0

tabPage的值是什麼?它是否爲空?你有沒有試過White的TabItem控件類型而不是TabPage? – 2011-06-07 08:12:11

+0

嗨,我面臨着同樣的問題 - 你找到了解決方案嗎? – 2012-04-03 13:14:19

回答

1

你能,R或溜溜球,把你的窗體上的文件共享某個編譯或在源代碼中(最好沒有內部邏輯)? 如果UIAVerify看到它,我從來沒有見過使用UI自動化不會捕獲的控件。我看到了這樣的窗口,這些窗口只能通過UIAVerify的焦點追蹤功能來捕捉。這種情況下,UI Automation搜索不可觸及這樣的窗口。

關於控件,你確定你正在努力的控件有Name屬性嗎?也許,這是一個只能通過ValuePattern獲得的值,而不是名稱?

+0

我現在沒有權限訪問代碼,但它是Borland C++,而且非常有用。我試圖發現的對象是動態的,並且造成很大的痛苦。最後,我使用了White/UI Automation和TestComplete的混合解決方案(因爲我的公司已經購買了許可證)。但如果關閉/商業TestComplete可以訪問這些對象,那麼肯定可以使用開源工具。 – Robert 2012-08-23 09:39:50

+0

您可以嘗試UIAutomation PowerShell模塊或UIAutomationSpy(均來自uiautomation.codeplex.com)。某些Deplhi(我認爲Borland C++屬於同一家族)控件不能從MS UI Automation訪問。但是,如果UIA Verify中的AutomationElement.FromPoint()可以獲得控件,則UIAutomationSpy應生成UIAutomation模塊將使用的代碼。 – 2012-10-02 19:32:28