Всем читающим доброго времени суток!
На работе дали задачу автоматизировать 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.
Помогите, пожалуйста, с решением проблемы. Поиск элемента по относительному пути очень долго отрабатывает.
Спасибо за внимание! Остановился на решении прописывать абсолютно/относительный путь, например: *[@ClassName = 'Window' and @Name = 'Быстрый поиск услуг']/*[@ClassName = 'TextBox' and @LocalizedControoType = 'поле'] и т.д.
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости