remove screenshots, improve logging and add timeout for button

This commit is contained in:
Thephaseless 2024-07-25 00:39:29 +00:00
parent 0178eeec68
commit ede99e0d5c

View File

@ -1,4 +1,4 @@
from pathlib import Path import asyncio
import nodriver as webdriver import nodriver as webdriver
from nodriver.core.element import Element from nodriver.core.element import Element
@ -19,18 +19,19 @@ async def new_browser():
async def bypass_cloudflare(page: webdriver.Tab): async def bypass_cloudflare(page: webdriver.Tab):
challenged = False challenged = False
while True: while True:
await page
await page.wait(0.5) 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: if page.target.title not in CHALLENGE_TITLES:
return challenged return challenged
if not challenged: if not challenged:
logger.info("Found challenge") logger.info("Found challenge")
await page.save_screenshot(Path("screenshots/screenshot.png"))
challenged = True challenged = True
Path("screenshots").mkdir(exist_ok=True) try:
logger.debug("Clicking element") elem = await asyncio.wait_for(
await page.save_screenshot(Path("screenshots/screenshot.png")) page.query_selector(".cf-turnstile-wrapper"), timeout=3
elem = await page.query_selector(".cf-turnstile-wrapper") )
except asyncio.TimeoutError:
logger.warning("Timed out waiting for element, trying again")
continue
if isinstance(elem, Element): if isinstance(elem, Element):
await elem.mouse_click() await elem.mouse_click()