Проблема с поиском абсолютного пути XPath к элементам десктопного приложения

142
18 августа 2019, 16:30

Всем читающим доброго времени суток!

На работе дали задачу автоматизировать GUI десктопного приложения (название не привожу, исходя из условий о неразглашении) и сразу столкнулся с проблемой поиска абсолютного пути XPath к элементам приложения. Для автоматизации выбрал фреймворк Winium.Cruciatus.

Вот XPath с относительным путем, который работает и находит нужный мне элемент:

var TextBoxElement = win.FindElement(By.XPath(".//*[@ClassName = 'PasswordBox' and contains(@LocalizedControlType, 'поле')]"));

Вот XPath с абсолютным путем, который я попытался написать, но он не сработал, этот путь искал через WInAppUiRecorder:

var TextBoxElement = win.FindElement(By.XPath("/Pane[@Name=\"Рабочий стол\"][@ClassName=\"#32769\"]/Window[@Name=\"Наименование приложения\"][@ClassName=\"Window\"]/Tab[@ClassName=\"TabControl\"]/TabItem[@Name=\"Подключение\"][@ClassName\"TabItem\"]/Custom[@Classname=\"CredentialBoxControl\"]/Edit=\"PasswordBox\"]"));

Прикладываю скрин DOM-дерева в Inspect, с помощью которого ищу элементы:

ОС: Windows 7. Среда разработки: Visual Studio 2015.

Помогите, пожалуйста, с решением проблемы. Поиск элемента по относительному пути очень долго отрабатывает.

Answer 1

Спасибо за внимание! Остановился на решении прописывать абсолютно/относительный путь, например: *[@ClassName = 'Window' and @Name = 'Быстрый поиск услуг']/*[@ClassName = 'TextBox' and @LocalizedControoType = 'поле'] и т.д.

READ ALSO
Многопоточность и сериализация

Многопоточность и сериализация

Такой вопрос, как можно осуществить многопоточную десериализацию/сериализацию? Асинхронная понятно, с этим проблем нетНо я бы хотел выделить...

144
Как сделать работающую базу данных?

Как сделать работающую базу данных?

Как сделать чтобы бд работала, сделал как тут, но вызывается исключение:

119
Как рассчитать CRC16 Modbus RTU C#

Как рассчитать CRC16 Modbus RTU C#

Столкнулся с проблемой, взял пример для расчета CRC16 Modbus на C# отсюда Код скомпилировал, создал юнит-тест:

118
Как заставить ИИ слышать звуки и реагировать на них?

Как заставить ИИ слышать звуки и реагировать на них?

Как заставить бота слышать звуки (например, выстрелы разной громкости из-за разных видов оружия), и реагировать на них, если он их слышитТак...

114