@Cunctator
Начинающий программист.

Возможно ли найти абсолютный путь XPath к элементам десктопного приложения?

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

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

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

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

Вот XPath с абсолютным путем, который я попытался написать, но он не сработал и переменной TextBoxElement был присвоен null, этот путь искал через 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\"]"));

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

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

5c4323a2d3175577958084.jpeg

Помогите, пожалуйста, с решением проблемы. Поиск элемента по относительному пути очень долго отрабатывает.
  • Вопрос задан
  • 383 просмотра
Решения вопроса 1
@Cunctator Автор вопроса
Начинающий программист.
Спасибо за внимание! Остановился на решении прописывать абсолютно/относительный путь, например: *
[@ClassName = 'Window' and @Name = 'Быстрый поиск услуг']/*[@ClassName = 'TextBox' and @LocalizedControoType = 'поле']
и т.д.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы