From ede99e0d5ceadb5c228dd68d518e0c37c0b67287 Mon Sep 17 00:00:00 2001 From: Thephaseless Date: Thu, 25 Jul 2024 00:39:29 +0000 Subject: [PATCH] remove screenshots, improve logging and add timeout for button --- src/utils/browser.py | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/utils/browser.py b/src/utils/browser.py index b63244c..9b5580a 100644 --- a/src/utils/browser.py +++ b/src/utils/browser.py @@ -1,4 +1,4 @@ -from pathlib import Path +import asyncio import nodriver as webdriver from nodriver.core.element import Element @@ -19,18 +19,19 @@ async def new_browser(): async def bypass_cloudflare(page: webdriver.Tab): challenged = False while True: - await page await page.wait(0.5) - logger.debug(page.target.title) + logger.debug(f"Current page: {page.target.title}") if page.target.title not in CHALLENGE_TITLES: return challenged if not challenged: logger.info("Found challenge") - await page.save_screenshot(Path("screenshots/screenshot.png")) challenged = True - Path("screenshots").mkdir(exist_ok=True) - logger.debug("Clicking element") - await page.save_screenshot(Path("screenshots/screenshot.png")) - elem = await page.query_selector(".cf-turnstile-wrapper") + try: + elem = await asyncio.wait_for( + page.query_selector(".cf-turnstile-wrapper"), timeout=3 + ) + except asyncio.TimeoutError: + logger.warning("Timed out waiting for element, trying again") + continue if isinstance(elem, Element): await elem.mouse_click()