Метод AsContainer() UIItem недоступен при использовании TestStack.White и C#
Я пытаюсь найти детей пользовательского элемента управления и, возможно, детей их детей и т. Д., Пока не найду нужный элемент управления. Я наткнулся на решение, которое использует метод AsContainer(), но когда я пытаюсь его использовать, я получаю сообщение об ошибке, в котором говорится, что "UIItem.AsContainer()" недоступен из-за уровня защиты. Я искал исходный код и не мог найти где-нибудь, чтобы изменить его на публичный или даже найти метод.
//White namespaces
using TestStack.White;
using TestStack.White.Factory;
using TestStack.White.UIItems.Container;
using TestStack.White.UIItems;
using TestStack.White.UIItems.Finders;
using TestStack.White.UIItems.MenuItems;
using TestStack.White.UIItems.TreeItems;
using TestStack.White.UIItems.TabItems;
using TestStack.White.UIItems.WPFUIItems;
using TestStack.White.UIItems.WindowItems;
using TestStack.White.UIItems.Custom;
using TestStack.White.UIItems.WindowStripControls;
using TestStack.White.WindowsAPI;
using TestStack.White.AutomationElementSearch;
IUIItem[] items = window.GetMultiple(SearchCriteria.All);
foreach (var item in items)
{
visit(item);
}
public void visit(IUIItem item)
{
if (item is CustomUIItem)
{
// Process custom controls
CustomUIItem customControl = item as CustomUIItem;
// Retrieve all the child controls
IUIItem[] items = customControl.AsContainer().GetMultiple(SearchCriteria.All);
// visit all the children
foreach (var t in items)
{
visit(t);
}
}
else
{
// Process normal controls
AutomationElementCollection children =
item.AutomationElement.FindAll(TreeScope.Children,Condition.TrueCondition);
UIItemCollection temp = new UIItemCollection(children.Cast<AutomationElement>());
foreach(var t in temp)
{
visit((dynamic)t);
}
}
}
Используя UIVerify, я знаю, что мой элемент управления можно найти по следующему пути: Главное окно приложения> ControlType.Group с идентификатором автоматизации> ControlType.Custom с именем "Лента" > ControlType.Tab с именем "Вкладки ленты" > ControlType.TabItems с именами. вкладок, которые я хочу найти.
Любая помощь будет принята с благодарностью. Благодарю.