Selenium, Java: как выбрать и кликнуть на элемент из выпадающего списка, если он представлен тегами select и ul одновременно

Я начинающий исследователь Selenium Java. Не судите строго.

Версии стека: Java: 20 Selenium: 4.8.2 ChromeDriver:109.0.5414.74

Задача: существует список элементов пола (мужской и женский), находящийся в выпадающем списке. Необходимо найти элемент "Мужской" и кликнуть на него.

Код выпадающего списка на странице:

<p>Пол</p>
<div class="SumoSelect" tabindex="0"> 
   <select name="CLIENT_GENDER" style="width: calc(100%); display: none;" id="CLIENT_GENDER" class="">
     <option value="0">-</option>
     <option value="1">Мужской</option>
     <option value="2">Женский</option>
  </select>
<p class="CaptionCont SlectBox" style="width: calc(100%);">
  <span>-</span>
  <label><i></i></label>
</p>
<div class="optWrapper">
  <ul class="options">
     <li data-val="0" class="selected">
     <label>-</label>
     </li>
     <li data-val="1">
     <label>Мужской</label>
     </li>
     <li data-val="2">
     <label>Женский</label>
     </li>
     </ul>
     </div>
     </div>

Пробовал несколько вариантов:

1.Поиск через класс Select:

Select client_gender = new
Select(driver.findElement(By.xpath("//select[@name='CLIENT_GENDER']")));
client_gender.selectByValue("1");

В том числе через

Select client_gender = new
Select(driver.findElement(By.xpath("//select[@name='CLIENT_GENDER']")));
client_gender.selectByVisibleText("Мужской");

Ошибка: Exception in thread "main" org.openqa.selenium.ElementNotInteractableException: element not interactable: Element is not currently visible and may not be manipulated

2.Пробовал найти и кликнуть через Excepted conditions

WebDriverWait ulWait = new WebDriverWait(driver, Duration.ofSeconds(30));
ulWait.until(ExpectedConditions.visibilityOfAllElementsLocatedBy(By.xpath((//ul[@class='options']")));
WebElement ulElement = driver.findElement(By.linkText("Мужской"));
ulElement.click();

Ошибка: Exception in thread "main" org.openqa.selenium.TimeoutException: Expected condition failed: waiting for visibility of all elements located by By.xpath: //ul[@class='options'] (tried for 30 second(s)

  1. Пробовал классическим образом через findelements и click, но также всё тщетно. Выдаёт ошибку, что элемент не кликабельный. Искал и кликал по тегам div, ul, p

Подскажите, пожалуйста, как найти элемент в данном случае (когда дублируются элементы в теге ul) и кликнуть на него (желательно с кодом для моего понимания)


Ответы (0 шт):