Как найти плавающий элемент календаря и взаимодействовать с ним в Selenium?Python

Программы на Python
Anonymous
Как найти плавающий элемент календаря и взаимодействовать с ним в Selenium?

Сообщение Anonymous »

Я работаю с веб-страницей, содержащей плавающий календарь, который появляется при наведении курсора на определенную кнопку. Мне нужно найти определенную дату в этом плавающем календаре и взаимодействовать с ней с помощью Selenium, но я не знаю, как обращаться с этим динамическим элементом.

Проблема:

  • Календарь не виден, пока я не наведу указатель мыши на кнопку.
  • При наведении курсора календарь становится видимым и позволяет взаимодействовать с даты.
  • Мне нужно выбрать конкретную дату (например, 21 октября 2025 г.), но я не могу правильно найти элемент даты после появления календаря.

Что я пробовал:

  • Найти кнопку: я успешно найдите кнопку, которая вызывает появление календаря, с помощью find_element() и имитируйте наведение курсора с помощью ActionChains.
  • Ожидание видимости: я использую WebDriverWait, чтобы дождаться появления календаря, но не знаю, как найти конкретную дату внутри календаря, когда она станет видимой.

Пример кода:

Код: Выделить всё

from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

# Hover over the button to display the calendar
calendar_button = driver.find_element(By.CSS_SELECTOR, "#calendar-button")
ActionChains(driver).move_to_element(calendar_button).perform()

# Wait for the calendar to appear
calendar_panel = WebDriverWait(driver, 10).until(
EC.visibility_of_element_located((By.CSS_SELECTOR, ".calendar-panel"))
)

# Now I need to locate and click a specific date, e.g., 2025-10-21
# I am unsure how to reliably find the date inside the calendar.
Изображение



Подробнее здесь: https://stackoverflow.com/questions/797 ... n-selenium

Вернуться в «Python»