Я считаю, что ваша проблема с заголовком окна. Вы видите, что Visual Studio будет давать заголовок окна каждому новому окну, созданному в вашем приложении. Когда вы записывали свой тест, заголовок вашего окна был «Form1». Так говорится в вашем сообщении об ошибке:
ControlType: 'Window' Имя: 'Form1'
Итак, вам нужно определить, переименовывает ли ваше окно окно каждый раз, когда открывается новое окно (скорее всего, так и есть). Например, если вы откроете второе окно, оно может называться «Form2».
Чтобы кодированный тест пользовательского интерфейса работал правильно, ему необходимо знать, где искать определенные элементы управления для выполнения своих действий. Таким образом, он должен знать заголовок окна, чтобы иметь возможность «выбрать текстовое поле, ввести случайное значение, нажать кнопку».
Единственный способ решить эту проблему - установить заголовок окна вручную, если я знаю, что оно изменилось или изменится.
this.UIMap.UIHighCapitalFranchiseWindow.UIHighCapitalFranchiseDocument.UICtl00ContentPlaceHolComboBox.WindowTitles.Clear();
this.UIMap.UIHighCapitalFranchiseWindow.UIHighCapitalFranchiseDocument.UICtl00ContentPlaceHolComboBox.WindowTitles.Add("Franchises for Sale");
Как видите, я просто очищаю все значения в свойстве WindowTitles элемента управления, затем добавляю правильный заголовок, который, как я знаю, должен быть. В приведенном выше примере это организовано следующим образом:
this. (Имя вашего файла uimap). (Имя вашего окна). (Имя документа в окне). (Имя определенного элемента управления (поле со списком, переключатель, текстовое поле и т. Д.)). WindowTitles . (очистить или добавить) ();
Этот код может идти прямо в кодированном тестовом файле пользовательского интерфейса или если вы хотите использовать частичный класс UIMap.cs (тот, который не генерируется автоматически, UIMap.Designer.cs - автоматически генерируемый) для внесения изменений в UIMap. Просто не забудьте удалить «.UIMap», если вы выберете последнее.