Метод 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 с именами. вкладок, которые я хочу найти.

Любая помощь будет принята с благодарностью. Благодарю.

0 ответов

Другие вопросы по тегам