Я пытаюсь создать несколько закодированных тестов пользовательского интерфейса, которые будут использоваться много раз над «набором» элементов управления WPF. Я могу использовать построитель тестов Coded UI для создания каждого теста по отдельности, но я хочу создать «общий» случай, поскольку каждый тест очень похож с небольшими изменениями.
Чтобы создать этот общий случай, мне нужно иметь возможность найти (затем щелкнуть) элемент управления с заданным родителем (в данном случае WpfWindow
; элемент управления, который я ищу, имеет несколько уровней глубины, но я хочу иметь возможность найти управление независимо от глубины). Мне удалось найти элемент управления, который я ищу, с помощью AutomationElement
, но закодированному пользовательскому интерфейсу он, похоже, не нравится, и я не могу щелкнуть его после того, как нашел.
Я попытался использовать GetChildren()
в родительском окне, а затем рекурсивно найти соответствующий элемент управления. Я использую SearchProperties
для поиска Name
и ControlType
конкретного элемента управления WPF, который я ищу, но не похоже, что все имеет Name
, и он терпит неудачу.
Я также пытался просто установить SearchProperties
для определенного элемента управления, но он выдает исключение, говорящее, что его невозможно найти.
Какие-либо предложения? Правильно ли я делаю это, или я упускаю что-то фундаментальное?
Помимо этого: насколько «плохо» иметь аналогичные тесты закодированного пользовательского интерфейса, созданные с помощью построителя тестов закодированного пользовательского интерфейса? Я имею в виду, что кажется неправильным создавать 800 различных тестов с помощью Coded UI Test Builder, каждый из которых имеет одни и те же первые 5 шагов (с небольшими различиями в зависимости от того, где он выполняется).