Я использую закодированный пользовательский интерфейс для автоматизации приложения. В процессе автоматизации внутри приложения происходит сложный процесс (загрузка PowerPoint внутри приложения). После этого процесса я не могу продолжить тест, потому что MSAA не может найти какие-либо элементы управления в приложении. Я использую Inspect.exe до и после сбоя автоматизации. Я прикрепил скриншот инструмента Inspect до и после сбоя. Есть ли какое-нибудь решение для преодоления этой проблемы? Я не могу продолжать тестирование автоматизации без перезапуска приложения всякий раз, когда сталкиваюсь с этой проблемой. Любая помощь будет принята с благодарностью!
MSAA не может найти элементы управления winforms
Ответы (2)
Попробуйте изменить разрешение экрана и размер экрана в настройках Windows.
Была такая же проблема в CodedUI. Инструмент проверки не нашел элементы управления в режиме msaa. После изменения разрешения и размера экрана он смог найти элементы управления.
person
Lalith
schedule
30.06.2021
Закодированный пользовательский интерфейс поддерживает WinForms и WinControls. Я предлагаю вам найти WinWindow, используя следующий код:
`WinWindow samplewindow = new WinWindow();
samplewindow.SearchProperties[WinWindow.PropertyNames.Name] = "XXYYZZZ";
samplewindow.SearchProperties[WinWindow.PropertyNames.ClassName] = "XXYYYZZZ";
WinButton uIButton = new WinButton(samplewindow);
uIButton.SearchProperties[WinButton.PropertyNames.Name] = "XXYYYZZZ";
Mouse.Click(uIButton, MouseButtons.Left, System.Windows.Input.ModifierKeys.None, uIButton.GetClickablePoint());'
person
Sathish
schedule
28.04.2015
Mouse.Click(SomeUiControl, new Point(10, 10));
, где10,10
— это координата внутри элемента управления. Для простых элементов управления код можно заменить наMouse.Click(SomeUiControl)
, но сгенерированный код включает координаты для лучшей поддержки некоторых более сложных элементов управления. - person AdrianHHH   schedule 19.03.2014DrawHighlight
должен быть успешным в родительском элементе управления пользовательского элемента управления. Я не уверен, будет ли это работать на самом пользовательском элементе управления. Такие программы, какInspect.exe
, используют механизмы отличия от закодированного пользовательского интерфейса. Многие люди (включая меня) задаются вопросом, почему они работают, но закодированный пользовательский интерфейс не может использовать те же механизмы. Согласно моему первому комментарию, вы можете добавить поддержку MSAA или UIA в пользовательский элемент управления, но сделать это сложно. - person AdrianHHH   schedule 20.03.2014