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

Тестирование Desktop приложения с интерфейсом построенным с использованием infragistics


(nik) #1

Добрый день. Столкнулся с необходимостью протестировать такое решение и сразу с несколькими вопросами.

Из фреймворков попробовал WinAppDriver, стандартными локаторами не находит элементы. Есть возможность подать локатор от windows UI Automation в метод FindElementByWindowsUIAutomation, который принимает его на вход как строку. Но я не могу понять как пишутся эти локаторы. В сети информация обрывочна. Может где-то есть образцы подобных локаторов.

Судя по отзывам teststack.white и другие фреймворки не умеют нормально работать с элементами из infragistics

Пробовал завести UI automation из состава .net, приложение открыл, но не могу понять как поймать текущее открытое окно, по какому принципу там ищется элемент. До этого работал с вебдрайвером, так что в десктопном тестировании подозреваю что я не могу дойти до каких-то базовых очевидных вещей. Буду благодарен за любой совет.


(Yurij Litvin) #2

UI Spy видит элементы?


(nik) #3

Пока не выходит достучатся до тех элементов которые видит UI Spy.
Часть элементов с которыми придется работать UI Spy не видит, но их находит inspect.exe
По информации из сети, вроде их находят через windows Ui automation framework

Из того что пока попробовал сделать с windows Ui automation framework, это найти окно и кнопку в нем, но при попытке обратится к окну или к кнопке выдает nullReferenceExeption

искать пробовал таким образом

var mainWindow = AutomationElement.RootElement.FindFirst(System.Windows.Automation.TreeScope.Children, new PropertyCondition(AutomationElement.AutomationIdProperty, “тут указан AutomationId”));


(Yury) #4

TestComplete умеет работать с Infragistics, но это коммерческий продукт:
https://support.smartbear.com/testcomplete/docs/general-info/supported-technologies/controls/infragistics.html


(Yurij Litvin) #5

Так как у вас есть опыт работы с WebDriver - попробуйте Winium… Почти все настроено у вас уже…


(nik) #6

TestComplete недешево, Winium почему-то рандомно виснет в разных местах.


(Viktor Vladimirovich) #7

Видит ли CodedUI recorder эти элементы?


(nik) #8

Перебрал несколько инструментов, промежуточные итоги:
CodedUI recorder проблемные элементы не находит, кликает по координатам.
Test Complete рекордер находит часть проблемных элементов и успешно обращается к ним по automationID, часть по имени, некоторые тоже по координатам.
Голый Microsoft UIAutomation - результаты что-то между CodedUI Test Complete.

Сейчас использую последний вариант, проблемные функции отрабатываю подачей нажатия клавиш (хоткеев) и кликами по координатам, но фактически это костыльное решение. Собственно непонятно почему один и тот же элемент из UIAutomation не работает, а в тесткомплит работает, учитывая то что тесткомплит это обертка поверх юайаутомейшн.


(Yury) #9

Ну, ТестКомплит это все-таки гораздо больше, чем просто обертка над UIAutomation.
Попробуйте прописать классы проблемных элементов в соответствующих разделах Object Mapping - https://support.smartbear.com/testcomplete/docs/testing-with/object-identification/improving/mapping.html

И не надо пользоваться рекордером. Он подходит для быстрого решения каких-то простых сценариев, но это не ваш случай, судя по всему.