@kolomiec_artiom

Как в selenium нажать на выпадающее меню?

Добрый вечер! Мне нужно в выпадающем меню с помощью selenium python выбрать определенную позицию. Как это сделать?

Если конкретно: есть сайт - https://zhenyanovokshanov1.wixsite.com/klinika/boo... (это мой сайт, который я специально создал для тестирования). Нужно в нем выбрать определенного врача. Как это сделать?

Надеюсь на вашу помощь!
  • Вопрос задан
  • 1269 просмотров
Решения вопроса 1
kshnkvn
@kshnkvn
yay ✌️ t.me/kshnkvn
Потому что весь контент на странице подгружается JS`ом во фрейм, в него нужно переключиться, что бы работать с данными, которые в нём есть:
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By

target_name = 'Иванов И.И.'

driver = webdriver.Chrome()
driver.get(
    'https://zhenyanovokshanov1.wixsite.com/klinika/bookings-checkout/%D0%BE%D1%84%D1%82%D0%B0%D0%BB%D1%8C%D0%BC%D0%BE%D0%BB%D0%BE%D0%B3/book'
)
driver.switch_to.frame(driver.find_element_by_xpath('.//iframe'))
dropdown_menu = WebDriverWait(driver, 30).until(EC.visibility_of_element_located((
    By.XPATH, './/span[@data-hook="dropdown-select-label"]'
)))
dropdown_menu.click()
target_elem = WebDriverWait(driver, 30).until(EC.visibility_of_element_located((
    By.XPATH, f'.//li[contains(text(), "{target_name}")]'
)))
target_elem.click()

Вернуться в корневой фрейм можно с driver.switch_to.default_content()
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы