не могу открыть строку поиск, не нажимается в коде, несмотря на все попытки. что можно сделать сайт kushvsporte.ru
import undetected_chromedriver as uc
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.keys import Keys
from selenium.common.exceptions import TimeoutException
import time
import datetime
# ========================================================================
# КОНФИГУРАЦИЯ
# ========================================================================
PAGE_LOAD_TIMEOUT = 30
TEAM_NAME = "Манчестер Юнайтед" # !!! ЗАМЕНИТЕ НА КОМАНДУ ДЛЯ ТЕСТА !!!
# ========================================================================
def activate_and_search():
"""Открывает страницу и принудительно активирует поле поиска."""
options = uc.ChromeOptions()
options.add_argument('--disable-blink-features=AutomationControlled')
options.add_argument('--log-level=3')
driver = None
try:
print(f"[{datetime.datetime.now().strftime('%H:%M:%S')}] Запуск Chrome для активации поиска...")
driver = uc.Chrome(options=options)
wait = WebDriverWait(driver, PAGE_LOAD_TIMEOUT)
# 1. Переход на страницу
driver.get("https://kushvsporte.ru/centerbet/football")
time.sleep(3)
# Ждем загрузки списка событий
wait.until(EC.presence_of_element_located((By.CLASS_NAME, 'events-list')))
search_input_locator = (By.CLASS_NAME, 'formSearchInput')
# 2.0. ПРИНУДИТЕЛЬНАЯ АКТИВАЦИЯ ПОЛЯ ПОИСКА (JS-МЕТОД)
try:
# 1. Находим элемент <form class="formSearch...">
search_form = wait.until(EC.presence_of_element_located((By.XPATH, "//form[contains(@class, 'formSearch')]")))
# 2. Выполняем JavaScript для удаления скрывающего класса и добавления активного класса
js_script_remove_class = """
var form = arguments[0];
form.classList.remove('formSearchOut');
form.classList.add('formSearchIn');
"""
driver.execute_script(js_script_remove_class, search_form)
print("✅ 2.0. Принудительное удаление класса 'formSearchOut' с формы выполнено.")
time.sleep(1)
# 3. Ждем, пока поле ввода станет ВИДИМЫМ
search_input = wait.until(EC.visibility_of_element_located(search_input_locator))
except Exception as e:
print(f"❌ 2.0. Критическая ошибка: Не удалось принудительно активировать поле поиска. {e}")
return False
# 2.1. ВВОД НАЗВАНИЯ КОМАНДЫ И АКТИВАЦИЯ ПОИСКА
try:
search_input.clear()
search_input.send_keys(TEAM_NAME)
print(f"✅ 2.1. Введено название команды: '{TEAM_NAME}'.")
# Активация поиска через Enter
search_input.send_keys(Keys.ENTER)
print("✅ 2.2. Нажата клавиша ENTER для активации поиска/фильтрации. Проверьте результат.")
time.sleep(5) # Пауза для визуальной проверки
except Exception as e:
print(f"❌ 2.1. Ошибка при вводе текста или нажатии ENTER. {e}")
return False
return True
except Exception as e:
print(f"[{datetime.datetime.now().strftime('%H:%M:%S')}] !!! КРИТИЧЕСКАЯ ОШИБКА !!!: {e}")
return False
finally:
if driver:
print("Закрытие драйвера.")
driver.quit()
# ========================================================================
# ЗАПУСК
# ========================================================================
if __name__ == "__main__":
print("=====================================================")
print(f"⏳ Тест активации поиска для команды: {TEAM_NAME}")
print("=====================================================")
activate_and_search()