Проблема с поиском идентификатора автоматизации для границы внутри ItemTemplate

У меня есть DataTemplate для класса, который следует за следующей иерархией

Я дал AutomationId каждому из этих элементов управления. когда я пытаюсь обнаружить выделенную границу с помощью Coded UI Test builder, я не могу ее найти. тогда как я непосредственно получаю флажок внутри одного из дочерних элементов управления.

Из-за этой проблемы я не могу автоматизировать этот родительский элемент управления (Border). Если я помещаю GroupBox вместо Border, я могу получить этот элемент управления.

отправил фактическое DataTemplate здесь

пожалуйста, помогите.

1 ответ

Вы должны иметь возможность использовать перекрестие с кодированным кодировщиком пользовательского интерфейса, чтобы перейти на уровень. Просто укажите на это с помощью перекрестия, и когда он указывает на флажок, используйте стрелки для перемещения по дереву.

Другое предложение - использовать С#, чтобы вручную добавить его на вашу карту. Это можно сделать, указав свойство идентификации для элемента управления. Однако, я думаю, у вас могут возникнуть проблемы с использованием AutomationProperties.Name или AutomationProperties.AutomationId. У вас было бы больше удачи, добавив свойство "Имя" к границе и идентифицировав элемент управления с этим.

Так:

public HtmlControl BorderOrangeBorder
{
 get
 {
 HtmlControl target = new HtmlControl([browser]);
 target.SearchProperties["name"] = "OrangeBorder";
 return target;
 }
}

licensed under cc by-sa 3.0 with attribution.