Как получить код (путь) к выпадающему списку элемента, чтобы в своих тестах работать с этим выпадающим списком (определять кол-во записей в нём после ввода значения, кликать по определённому по счёту значению) ?)
Через поиск элемента в DevTools не удалось это сделать.
Нет, это закрытое веб-приложение.
Проблема в том, что когда я кликаю по элементу и открывается выпадающий список, то после того как я кликаю по этому списку (Ctrl+shirt+C) - в коде страницы не отображается явная строка с кодом этого списка. То есть фокус не установлен на конкретной строчке, как это бывает когда мы ищем элементы.
Здесь проблема еще в том, что это выпадающий список не со статичными значениями в нём. По умолчанию он пуст, если его вызвать. Значения в выпадающем списке появляются если с клавиатуры в поле ввести какой-то текст. И если в таблице БД есть запись, содержащая этот текст - выпадающий список покажет результаты.
введите фамилию, чтоб список появился, и в elements найдите html код, который описывает этот список и его составляющие, и там можно будет написать селектор, сделайте скрин, если нужна помощь
Там в каждой записи есть data-test, он уникальный для конкретного сотрудника. Идёт статическая часть li-element- а после неё уникальный идентификатор сотрудника.
Если сделать Xpath по конкретному идентификатору, то всё работает - конкретная запись выбирается в выпадающем списке:
Но мне очень важно чтобы выбиралась не конкретная запись в списке, а именно первая. Так как список динамический, и записи могут быть разными в зависимости от ввода. Мне важно понять как кликнуть именно по первой.
Разобрался, благодарю за помощь.
Но видимо пока этот способ не эффективный, так как в нашем приложении на каждой странице практически по несколько таких дропдаунов и все они одинаковые - //div[@role = ‘listbox’] с элементами внутри //li[contains(@data-test, ‘li-element’)] или //li[contains(@class, ‘select-input-option’)]. Верхнего уникального родителя у них тоже нет. Невозможно привязаться к конкретному дропдауну. Плюс ко всему их положение и количество может меняться в зависимости от выставленных настроек пользователя.
Благодарю, мне эта статья очень помогла. Пока не смог разобраться как работать через findElements но смог составить локатор, обращаясь к уникальному родителю. Таким образом создал коллекцию в Selenide и теперь с выпадающим списком можно работать, все требуемые кейсы работают.