Проблема автоматизации пользовательского интерфейса Silverlight - элемент не найден - PullRequest
0 голосов
/ 26 апреля 2011

Мне нужно создать автоматизированные тесты для приложения Silverlight, я использую пространство имен System.Windows.Automation.Моя проблема заключается в следующем:

Я использую AutomationElement.FindFirst, чтобы найти элементы пользовательского интерфейса в дереве пользовательского интерфейса:

AutomationElement toBeInvoked = browser.FindFirst(TreeScope.Descendants,
                    new PropertyCondition(AutomationElement.AutomationIdProperty, id));

Это работает в течение нескольких шагов, но после этого ничего не находит,Я проверил, что после изменения экрана дерево пользовательского интерфейса будет пустым, UISpy видит только элемент управления Silverlight, но не более того: снимок экрана .(Я также пытался использовать TreeWalker, но результат был тот же.) Если я нажимаю вручную и проверяю элементы с помощью UISpy, все в порядке.Но когда я запускаю свой код, он останавливается (обычно на той же кнопке).

Позже я понял, что если я нажимаю вручную на экранах, которые посетит мой код, и после того, как я его выполню, не будетбыть любой проблемой ... странно.Я пробовал это в FF 3.6, 4.0 и IE8.Проблема одинакова во всех браузерах.

Кто-нибудь знает, что может быть не так или где может быть ошибка?Я что-то пропустил в своем коде, или проблема в настройках браузера?

Заранее спасибо, с уважением,

Miklos

1 Ответ

0 голосов
/ 30 июня 2011

«Если я нажимаю вручную и проверяю элементы с помощью UISpy, все в порядке. Но когда я запускаю свой код, он останавливается»

Вы можете смоделировать ручное нажатие на эту вызывающую проблемы кнопку: 1. Получите координаты кнопки, которую вы хотите нажать, с помощью UI Automation;2. Приведите мышь в действие, чтобы щелкнуть ее координату (по win32 mouse_event api);

Убедитесь, что следующие шаги могут выполняться или нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...