Я пытаюсь заставить мой сценарий Selenium щелкнуть значение в раскрывающемся меню. Однако у меня возникают проблемы с выполнением каких-либо действий в раскрывающемся списке после того, как я изначально щелкнул по нему. Я искал в Интернете и могу найти ответы только в раскрывающемся списке «Выбрать».
Вот HTML-код раскрывающегося списка:
<span class = "select2-selection__rendered" title = "1st item"
id = "select2-id_template_or_inspection-container">
</span>
Вот фрагмент кода, в котором я нажимаю на раскрывающийся список:
//Choose a Template from Dropdown
WebElement dropdownBtn = webDriver.findElement(
By.id("select2-id_template_or_inspection-container"));
dropdownBtn.click();
Вот фрагмент кода, в котором я пытаюсь щелкнуть значение в раскрывающемся списке:
WebElement dropdownItemBtn = webDriver
.findElement(By.id("select2-id_template_or_inspection-result-hlwt-tmpl-2583"));
dropdownItemBtn.click();
Однако идентификаторы значений в раскрывающемся списке меняются каждый раз при перезагрузке страницы.
Я ценю помощь!
Благодарность! Я обновил вопрос
Можете ли вы также указать URL-адрес, по которому находится этот раскрывающийся список? Если идентификаторы изменятся, вам придется попытаться выбрать элемент, используя что-то еще, например, с помощью селектора CSS.
@Long, раскрывающийся список включает, по крайней мере, параметры, ваш данный HTML-код не включает HTML-код списка параметров. Пожалуйста, узнайте их и обновите вопрос (не в комментариях). Если вы не можете их найти, укажите общедоступный URL-адрес, если он есть в вашем приложении. Или вы знаете, что ваш раскрывающийся список - это какой-то известный плагин, ложный плагин выпадающего списка jQuery.
Не могли бы вы подтвердить, что идентификатор тега span полностью меняется каждый раз или какая-то часть остается постоянной?




Вы можете попробовать такой подход:
Это то, что вы сделали, чтобы щелкнуть диапазон, чтобы открыть его раскрывающиеся элементы.
//Choose a Template from Dropdown
WebElement dropdownBtn = webDriver.findElement(By.id("select2-id_template_or_inspection-container"));
dropdownBtn.click();
Поскольку идентификаторы значений в раскрывающемся списке меняются каждый раз при перезагрузке страницы, вы можете использовать dropdownBtn для поиска его дочерних / дочерних элементов в качестве элементов раскрывающегося списка и щелкнуть нужный раскрывающийся список:
List<WebElement> dropdownItems = dropdownBtn.findElements(By.tagName("tagNameOfDropdownItems"));
dropdownItems.get(0).click(); // click on first Dropdown, for example
Поскольку идентификаторы меняются динамически, давайте попробуем найти элементы по tagName. Надеюсь, поможет.
Пожалуйста, создайте Минимальный, полный и проверяемый пример, который включает скрипт, который вы используете, чтобы попытаться выполнить эту задачу. Также отметьте язык, на котором написан ваш сценарий, если необходимо.