Как отправить данные в поле input через Selenium(python)?

Подскажите, пожалуйста, как отправить дату в формате YYYY-MM-DD в поле input через Selenium на Python. Поле input выглядит следующим образом: введите сюда описание изображения

И если отправить данные через driver.find_element_by_xpath('тут путь').send_keys('2021-17-01'), то возвращается ошибка:

selenium.common.exceptions.ElementNotInteractableException: Message: element not interactable

Сам элемент страницы - input - он определяется. Проверял выводом print(driver.find_element_by_xpath('тут путь'))

Элемент на странице выглядит следующим образом: введите сюда описание изображения


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

Автор решения: Blank

может быть ошибка связана с тем, что я отправляю строку? форма на сайте принимает лишь число

-Нет, метод send_keys в selenium принимает в качестве аргумента строку.

Скорее всего дело в том, что Selenium не видит поле input, и нужно проскроллить до него. Возможно, ответ на ваш вопрос: https://stackoverflow.com/questions/44119081/how-do-you-fix-the-element-not-interactable-exception

→ Ссылка
Автор решения: Вячеслав

Воспользуйся функцией is_displayed() чтобы проверить видимость объекта, но твоя проблема в том, что у тебя поле с маской. Поля с маской невозможно передать через функцию send_keys() без передачи перед строкой функции, которую выполняет кнопка HOME на клавиатуре.

Попробуй следующее:

from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys

driver.find_element(By.XPATH, '<твой x_path>').send_keys(Keys.HOME + '2021-17-01')

Однако также стоит обратить внимание, что маска у тебя через точку и дата записана в ином формате (последовательности), так что если не сработает описанный выше вариант попробуй вот такой:

from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys

driver.find_element(By.XPATH, '<твой x_path>').send_keys(Keys.HOME + '17.01.2021')
→ Ссылка