Обновить белое дерево элементов автоматизации
Я использую TestStack.White для автоматизации тестирования пользовательского интерфейса. Проблема, с которой я сталкиваюсь, состоит в том, что дерево элементов не обновляется после того, как я нажимаю кнопку, которая открывает новый экран.
Белые работают с использованием UI Automation Verify(инструмент Microsoft), поэтому, если вы не можете найти элемент с помощью этого инструмента, белые также не смогут его найти.
Если я открою приложение, нажмите кнопку, чтобы отобразить представление, а затем откройте "Проверка автоматизации пользовательского интерфейса", после чего в инструменте появятся все поля в этом новом представлении. Однако, если у меня открыто окно "Проверка пользовательского интерфейса" до того, как я нажимаю кнопку, новое представление не отображается в инструменте. Следовательно, кажется, мне нужно как-то просто обновить дерево элементов.
Есть ли какой-нибудь способ, которым я могу сделать это в C#, чтобы мое тестирование белых могло видеть эти новые визуализированные элементы?
2 ответа
У меня была та же проблема (при переходе от создания элемента управления к простому изменению видимости существующих элементов управления). До этого работал код:
checkButton.Toggle();
После этого этого не произошло. Решение было использовать
Mouse.Instance.Click(checkButton.ClickablePoint);
вместо.
Каким-то образом TestStack/White действительно реагирует и обновляет пользовательский интерфейс, когда вы непосредственно используете объект Mouse.
Вы пробовали вариант InitializeOption.WithCache?
Window modalWindow = mainWindow.ModalWindow(SearchCriteria.ByText("Modal Window"), InitializeOption.WithCache);
modalWindow.ReloadIfCached();
//or
modalWindow.ReInitialize(InitializeOption.WithCache);