Приложение WPF использует платформу приложений, и я не могу редактировать ни один из них.Получение IUIItem [] для детей CustomUIItem в TestStack.White
я могу посетить каждый элемент в GUI делать что-то вдоль этих линий:
IUIItem[] items = window.GetMultiple(SearchCriteria.All);
foreach (var item in items)
{
visit((dynamic)item);
}
У меня нет никакой проблемы с нормальным контролем, но я врезался в стену с CustomUIItem
.
Я хотел бы посетить всех детей этого, но я не могу сделать из них новый массив IUIItem[]
.
Вот что я сейчас:
void visit(CustomUIItem item)
{
AutomationElementCollection children =
item
.AutomationElement
.FindAll(TreeScope.Children, Condition.TrueCondition);
UIItemCollection temp = new UIItemCollection(children.Cast<AutomationElement>());
foreach(var t in temp)
{
visit((dynamic)t);
}
}
Somethimes это бросает и большую часть времени сбора остается пустым.
CusomControl
имеет «обычные» элементы управления среди своих детей. Я хочу, чтобы они были как обычные IUIItem
s.
Где я могу найти документацию для этого. Единственное, что я нашел, это this, и я не могу этого сделать, так как я только посещаю извне, и я не знаю контент управления.
Вы не использовали ключевое слово (динамическое). Но я думаю, что использование AsContainer - это то, что я искал. – Johannes
Хорошо, я только предположил, что целью метода посещения() было только рекурсивно просматривать дерево UIItems. Теперь я вижу, что ваш реальный метод посещения(), вероятно, более сложный, чем данный код ;-). – DLDR