我試圖自動化測試用C++編寫的應用程序。 我使用UI Automation
:http://msdn.microsoft.com/en-us/library/ms747327.aspx 我用UIAVerify
找到一些元素的automationIds
,但某些元素在工具中顯示爲禁用(變灰)。UI自動化驗證找到元素的AutomationId
是否意味着某些元素的交互不可自動化?如何自動化一個沒有AutomationId
值的元素的交互?
編輯:我試圖使用自動化點擊有ControlType.Custom
並具有Name
它的屬性集控制。有沒有辦法做到這一點?我想這兩個方面,都失敗:
方法1:
//using framework white
var button = window.Get(SearchCriteria.ByControlType(ControlType.Custom).AndByText ("<Name Property>"));
方法2:
//using Automation Framework
aeCtrl = aeParentPanel.FindFirst(TreeScope.Children,
new PropertyCondition(AutomationElement.NameProperty, "<Name Property>"));
感謝指向單詞引用,我應該已經搜索過!我想我將使用其他控件的名稱/值屬性。這些'名稱'可能會在我的產品的下一個版本中發生變化,所以需要解決方法... – user96403
如果它是您的產品,那麼您應該能夠將AutomationID分配給某些穩定的東西。 AutomationID的另一主要用途是作爲'名稱'的形式,在本地化版本中保持穩定 - 不容易在其中使用名稱,因爲它在每種語言上都會有所不同。你使用的是什麼框架 - Win32,WinForms,WPF或其他東西? – BrendanMcK
我的產品是用C++編寫的。如果開發人員僅使用託管語言編寫產品,我認爲AutomationID可以由開發人員分配。我還可以分配AutomationID嗎?提前致謝。 – user96403