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

Использую Selenium и Python. Программа загружает страницу и делает разные действия на этой странице. Эту задачу я выполнил и обернул в функцию GetInfo(). Мне нужно сделать, так чтоб функция выполнялась заново, если прошло 2 минуты и она не выполнилась(это значит, сайт слишком долго грузится). Помогите пожалуйста это сделать, буду очень благодарен.


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

Автор решения: vadim vaduxa

Может имеется виду не функция, а контрено загрузка станицы?, тогда set_page_load_timeout

def GetInfo(driver, url, retry=2):
    try :
        driver.get(url)
    except selenium.common.exceptions.TimeoutException as _e:
        retry -= 1
        if retry:
            return GetInfo(driver, url, retry=retry)
    else:
        ...

if __name__ == '__main__':
    driver = webdriver.Chrome()
    driver.set_page_load_timeout(120)  # если прошло 2 минуты и она не выполнилась(это значит, сайт слишком долго грузится)
    GetInfo(driver, url, retry=2)
→ Ссылка