Как выбрать элемент из выпадающего списка с помощью selenium

#selenium #selenium-webdriver

Вопрос:

Я столкнулся с проблемой выбора параметров из выпадающего списка в Selenium.

Ниже приведен пример html-списка и поле Dropbox.

 lt;li class="MuiButtonBase-root MuiListItem-root MuiMenuItem-root Mui-selected MuiMenuItem-gutters MuiListItem-gutters MuiListItem-button Mui-selected" tabindex="0" role="option" aria-disabled="false" aria-selected="true" data-value="588ad39c8557bd23e3c16059"gt; (public) ISOlt;span class="MuiTouchRipple-root"gt;lt;/spangt;lt;/ligt;  lt;li class="MuiButtonBase-root MuiListItem-root MuiMenuItem-root MuiMenuItem-gutters MuiListItem-gutters MuiListItem-button" tabindex="-1"  role="option" aria-disabled="false" data-value="611e693ad6018009c8f7c681"gt; (public) public.dwglt;span class="MuiTouchRipple-root"gt;lt;/spangt;lt;/ligt;  

Я попробовал это с помощью элемента select, и, к сожалению, класса select нет в моем домашнем коде, поэтому он не работает.

Поэтому я хотел бы проверить, могу ли я в любом случае сделать так, чтобы Dropbox был выбран без использования класса select.

Любая помощь будет оценена по достоинству. Надеюсь, кто-нибудь ответит на этот вопрос.

Примечание: я искал в Google и перепробовал множество решений, и в конце концов ни одно из них не работало.

введите описание изображения здесь

Комментарии:

1. Вы делаете это на Python ?

Ответ №1:

Класс Selenium Select предназначен для выпадающего списка, построенного с использованием тега Select и Option. htmnl, которым вы поделились, используется li tag , поэтому он Select не будет работать.

Чинить :

  1. Нажмите на выпадающую панель.
  2. Нажмите на нужную опцию.

Код :

Предполагая, что это на Python, вы могли бы сделать следующее :

 WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "XPath of drop down bar"))).click() WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//li[contains(text(),'(public) public.dwg')]"))).click()  

Импорт :

 from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC