Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Поиск контрола с помощью AutoIT, TestStack.White или AutomationUI

uiautomator
autoit
visual-studio
Теги: #<Tag:0x00007f7b642b0430> #<Tag:0x00007f7b642b02f0> #<Tag:0x00007f7b642b01b0>

(Nakutaro) #1

Доброго времени суток, не могу найти контрол в десктопном приложении.
Ищу контрол с именем “Процессы”, не находит. Ищу контрол с именем “Меню”, находит. Не могу понять почему. Карта и код ниже.

        public DesignerAuth FindElement()
        {
            _application = Application.Launch(DESIGNER_PATH);
            Assert.IsNotNull(_application);
            GetButton(ENTER_SYSTEM_BUTTON).Click();
            Thread.Sleep(15000);
            GetButton("Процессы").Click();
            _application.Close();
            return GetDesignerAuth();
        }

        public Button GetButton(string nameButton)
        {
            for (var i = 0; i < 100; i++)
            {
                Thread.Sleep(100);
                var button = GetWindow().Get<Button>(SearchCriteria.ByText(nameButton));
            if (button != null) return button;
        }
            return null;
        }

        public Window GetWindow()
        {
            AutoItX.WinWait(winName);
            return _application.GetWindow(AutoItX.WinGetTitle(winName));
        }



(Andrey Stepanuk) #2

Не всегда то что видит код совпадает с тем что видят программы типа UISpy.

http://teststackwhite.readthedocs.io/en/latest/AdvancedTopics/ThirdPartyControls/

Попробуй вывести структуру в лог, в TestStack.White для этого есть LogStructure()


(Sergey Ivanskoy) #3

пробовали искать по ByAutomationId? почему вообще используете поиск по тексту?


(Nakutaro) #4

Вы видите в карте у элементов AutomationID?