Как кликать на кнопки с разными классами на Selenium + Python?
Всем добрый день. Подскажите, как можно кликать при помощи селениума нажимать на несколько кнопок, у которых разные классы? Есть код, который кликает на каждый матч, но только на те, которые еще не начались. Как сделать так, чтобы кликалось не только на будущие игры, но и на те, которые уже идут в режиме онлайн? И также которые перенесены? (они всем имеют разные классы)
Код:
from selenium import webdriver
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from webdriver_manager.chrome import ChromeDriverManager
driver = webdriver.Chrome(ChromeDriverManager().install())
count = 0
driver = webdriver.Chrome(executable_path="C:\\Users\\user\\PycharmProjects\\parsing\\chromedriver") # укажите здесь путь до файла хром драйвер
driver.get('https://www.flashscore.ru/')
time.sleep(3)
arr = driver.find_elements_by_css_selector(".event__match.event__match--scheduled.event__match--oneLine")
arr1 = driver.find_elements_by_css_selector(".event__match.event__match--last.event__match--oneLine")
arr2 = driver.find_elements_by_css_selector(".event__match.event__match--live.event__match--last.event__match--oneLine") # это селекторы кнопок, на которые нужно нажимать
driver.set_page_load_timeout(5)
for channel in arr + arr1, arr2:
try:
channel.click()
count += 1
if count == 16:
driver.execute_script("window.scrollTo(0, 600);") # кликнул на 16 матчей и прокручиваешь вниз
time.sleep(3)
elif count == 28:
driver.execute_script("window.scrollTo(600, 1100);")
time.sleep(3)
Но почему-то всё равно не получается кликать подряд. Подскажите, как реализовать клики на кнопки с разными классами?
Ответы (1 шт):
Автор решения: Hush
→ Ссылка
Кнопки можно нажимать не только по класс
ам, но и по id, css_selector, xpath.
Например на чтобы нажать кнопку отправить ответ по id нужно написать:
driver.find_elements_by_id("submit-button").click()