Автоматический просмотр видео Python+Selenium

1,00
р.
Есть задача (для себя) написать бот для просмотра видео на Перископе.
Алгоритм:
Вставляешь ссылку на трансляцию и даём значение переменной n = количество выполнений пунктов 3 и 4. Идёт проверка каждые "n" секунд наличие текста на сайте, если текст на сайте есть переходим к 3 пункту. Скрипт запускает на просмотр видео и одновременно пингует на наличие на сайте текста о завершение трансляции, после завершения трансляции, переходим к 4 пункту.
Но тут возникают ошибки (основная запись):
ConnectionRefusedError: [WinError 10061] Подключение не установлено, т.к. конечный компьютер отверг запрос на подключение
Думал что поможет исправить проблему увелечение интервала запросов на сайт, ставил ожидание 120 сек., не помогло.
Сам код программы:
from selenium import webdriver from selenium.common.exceptions import NoSuchElementException import time
global n n = 0 global i i = 0
def getProfile(): profile = webdriver.FirefoxProfile() profile.set_preference("browser.privatebrowsing.autostart", True) return profile
def work(driver): time.sleep(120) try: driver.find_element_by_id('video_swf_0') except NoSuchElementException: print('Такого элемента на сайте существует!') driver.close() time.sleep(120) work(driver) else: print('Такой элемент на сайте существует!') driver.close() time.sleep(120) works(driver)
def works(driver): while (i<=n): time.sleep(120) driver = webdriver.Firefox(firefox_profile=getProfile()) driver.implicitly_wait(5) # seconds driver.get(url_t) time.sleep(120) try: driver.find_element_by_id('video_swf_0') except NoSuchElementException: print('Такого элемента на сайте существует!') driver.close() time.sleep(120) works(driver) else: print('Такой элемент на сайте существует!') i = i + 1 time.sleep(120) works_c(driver)<br>def works_c(driver): time.sleep(120) driver.implicitly_wait(5) driver.get(url_t) try: driver.find_element_by_id('video_swf_0') except NoSuchElementException: driver.close() time.sleep(120) works(driver) else: time.sleep(120) works_c(driver)
def main(): url_t = input("Введи ссылку на трансляцию: ") n = int(input("Введи количество просмотров трансляции: ")) driver = webdriver.Firefox(firefox_profile=getProfile()) driver.implicitly_wait(5) # seconds driver.get(url_t) time.sleep(5) work(driver)
if __name__ == '__main__': main()

Ответ
На сколько я помню, thread.sleep принимает значение в миллисекундах. Тоесть, чтобы ожидать 120 секунд надо прописать 120000. НО принудительное ожидание это не правильно! Правильнее сделать примерно так:
timeout = 120 while driver.find_element_by_id('video_swf_0') == null: if timeout > 0: thread.sleep(1000) timeout = timeout - 1 else: break