UI Automation Verify v/s UISpy - как они находят элементы пользовательского интерфейса
Я пытаюсь автоматизировать взаимодействие с пользовательским интерфейсом для приложения C++ MFC. Я попытался найти идентификатор автоматизации элементов с помощью инструментов UISpy и UIAVerify. Я на win2k3.
Существует элемент управления вкладкой, идентификатор автоматизации которого виден для UISpy, но не для UIAVerify.
Проблема в том, что он невидим даже для кода C#, который я пишу с использованием среды Project White или среды автоматизации пользовательского интерфейса.net 3.0.
Я хочу получить доступ к этому элементу управления так, как это делает UISpy. Есть ли способ узнать, как это делает UISpy?
Спасибо!!!
1 ответ
UISpy, вероятно, использует Microsoft UI Automation под прикрытием. Вы можете увидеть, как это работает из этого примера *. В AutomationElement есть все виды условий, которые вы можете использовать для их поиска.
Я работал только с вкладками WPF, но мне было очень и очень трудно найти их по Automation Id. Вместо этого я использую AutomationName
свойство, с заголовком на вкладке в качестве значения. Не уверен, что белые поддерживают это, но я уверен, что вы можете получить оригинал AutomationElement
и использовать его в соответствии с примером.
Вы также, вероятно, будете искать что-то, поддерживающее SelectionItemPattern
(есть SelectionItemIsSupportedProperty
), и вам нужно будет использовать шаблон, чтобы выбрать вкладку и сделать ее активной, прежде чем вы сможете что-либо увидеть в ней.
Пожалуйста, прокомментируйте, если вам нужна дополнительная информация. Это может помочь узнать, какова структура вашего контейнера с вкладками.
* Заявление о заинтересованности, так как я написал это.