import sys import time import atexit from loguru import logger from selenium import webdriver from selenium.webdriver.firefox.service import Service from selenium.webdriver.firefox import options from urllib3.exceptions import MaxRetryError logger.remove() logger.add(sink=sys.stdout, colorize=True, level='DEBUG', format="{time:YYYY.MM.DD HH:mm:ss} | {level} | " "{message}") opt = options.Options() opt.headless = False service = Service(executable_path=r'./geckodriver') driver = webdriver.Firefox(service=service, options=opt) def exit_log(message: str): logger.info(message) try: driver.close() except MaxRetryError: pass if __name__ == '__main__': try: try: driver.get("https://www.twitch.tv/lol4to22") logger.info('you have 60 seconds to login') time.sleep(60) logger.info('time for login is up') except Exception as e: logger.error(f'Open page exception: {e}') while True: try: elem = driver.find_element(by='css selector', value='[aria-label="Claim Bonus"]') elem.click() logger.info('Bonus +50 has been clicked!') except Exception as e: pass time.sleep(15) except KeyboardInterrupt as e: atexit.register(exit_log, 'Exit script')