Как написать скрипт нажатия кнопки, которая появляется в неопределенное время в интернет магазине?

Кнопка

botton_KUPIT = ("xpath", "//button[@class='btn-primary buy']")    

Нажатие кнопки

driver.find_element(*botton_KUPIT).click()

Нужно написать цикл в котором обновляем страницу driver.refresh() до тех пор, пока появится кнопка botton_KUPIT = ("xpath", "//button[@class='btn-primary buy']") и потом нажимаем на нее driver.find_element(*botton_KUPIT).click()


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

Автор решения: user737326
import time
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import TimeoutException

# Настройка ожидания (в секундах)
timeout = 10  # максимальное время ожидания элемента
refresh_interval = 2  # интервал между обновлениями

while True:
    try:
        # Ожидаем появления кнопки
        button_KUPIT = ("xpath", "//button[@class='btn-primary buy']")
        wait = WebDriverWait(driver, timeout)
        button = wait.until(EC.element_to_be_clickable(button_KUPIT))
        
        # Если кнопка найдена, кликаем по ней
        button.click()
        print("Кнопка найдена и нажата!")
        break
        
    except TimeoutException:
        # Если кнопка не найдена, обновляем страницу
        print("Кнопка не найдена, обновляем страницу...")
        driver.refresh()
        time.sleep(refresh_interval)
→ Ссылка