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), и вам нужно будет использовать шаблон, чтобы выбрать вкладку и сделать ее активной, прежде чем вы сможете что-либо увидеть в ней.

Пожалуйста, прокомментируйте, если вам нужна дополнительная информация. Это может помочь узнать, какова структура вашего контейнера с вкладками.

* Заявление о заинтересованности, так как я написал это.

Другие вопросы по тегам