Я создал пример приложения, в котором есть пользовательский элемент управления UserControl внутри формы Windows.UserControl состоит из двух элементов управления: Button и TextBox.
Я могу найти текстовое поле, предоставив только тип, и это работает:
var customUserControlTextBox = new WinEdit(parentWindow);
customUserControlTextBox.Text = "Some value";
Но почему Coded UI не может найти TextBox, если я добавляю другой поискпараметр:
customUserControlTextBox.Add(WinEdit.PropertyNames.ControlName, "UserControlTextBox");
Тест не пройден в сообщении: «При воспроизведении не удалось найти элемент управления с заданными свойствами поиска. Дополнительные сведения: TechnologyName : MSAA, ControlType : Edit, ControlName : UserControlTextBox
Вот захват изображения из построителя тестов с кодированным пользовательским интерфейсом:
На этой странице блога Microsoft сказано, что SearchParameters должен действовать как оператор AND: https://blogs.msdn.microsoft.com/balagans/2009/12/28/how-does-coded-ui-test-finds-a-control/
Первый проход поиска выполняется для совпадения всех свойств, указанных в списке SearchProperties. По сути, это может бытьобозначается как AND Состояние поиска свойств.