Как выбрать элемент из div с помощью поля со списком role = в Selenium Webdriver

Мой html-код:

<td class = "v-formlayout-contentcell">
    <div role = "combobox" class = "v-filterselect v-widget v-required v-filterselect-required v-has-width v-filterselect-prompt" id = "envRegulations" style = "width: 255px;">
        <input type = "text" class = "v-filterselect-input" autocomplete = "off" id = "gwt-uid-366" aria-labelledby = "gwt-uid-365" aria-required = "true" style = "width: 100%;" tabindex = "0" dir = "">
        <div class = "v-filterselect-button" aria-hidden = "true" role = "button"></div>
    </div>
</td>
<div class = "v-filterselect-button" aria-hidden = "true" role = "button"></div>

В выпадающем списке есть 2 значения: «Да» и «Нет».

Я пробовал много вариантов (By.cssSelector, By.xPath), чтобы принудительно писать в этом поле, но это не помогло. Последняя версия кода:

WebElement environmentalRegulations = wait.until(ExpectedConditions.presenceOfElementLocated(By.id("envRegulations")));
environmentalRegulations.sendKeys("YES");
environmentalRegulations.sendKeys(Keys.ENTER);

Ошибка: исключение в потоке «основной» org.openqa.selenium.ElementNotInteractableException: элемент не взаимодействует

Упомяните, что id = «gwt-uid-366» — это динамическое значение, и я не могу его получить.

Как выбрать значение из этого div? Не могли бы вы мне помочь, пожалуйста?

Я не вижу раскрывающихся значений «Да» и «Нет». Можете ли вы поделиться URL-адресом страницы, чтобы я мог убедиться в этом сам?

JeffC 19.02.2024 06:05
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
1
78
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

WebElement environmentalRegulations = wait.until(ExpectedConditions.presenceOfElementLocated(By.id("envRegulations")));

измените эту строку, чтобы она указывала на input, а не на div, как показано ниже. WebElement environmentalRegulations = wait.until(ExpectedConditions.presenceOfElementLocated(By.cssSelector("#envRegulations input")));

Сделанный. Я решил это с помощью "By.cssSelector("#envRegulations input"))". Спасибо! :)

vLd 19.02.2024 13:00

Другие вопросы по теме