From bfe931d3bf4e2121791b0d8faa2bc02b4fddcbe4 Mon Sep 17 00:00:00 2001 From: shoucandanghehe Date: Tue, 4 Jun 2024 20:15:41 +0800 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20=E4=B8=BA=E6=88=AA=E5=9B=BE?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=87=AA=E5=8A=A8=E9=87=8D=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- nonebot_plugin_tetris_stats/utils/screenshot.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/nonebot_plugin_tetris_stats/utils/screenshot.py b/nonebot_plugin_tetris_stats/utils/screenshot.py index 94e8e9c..a05c57f 100644 --- a/nonebot_plugin_tetris_stats/utils/screenshot.py +++ b/nonebot_plugin_tetris_stats/utils/screenshot.py @@ -1,11 +1,15 @@ +from playwright.async_api import TimeoutError + from .browser import BrowserManager +from .retry import retry +@retry(exception_type=TimeoutError, reply='截图失败, 重试中') async def screenshot(url: str) -> bytes: browser = await BrowserManager.get_browser() async with ( await browser.new_page(no_viewport=True, viewport={'width': 0, 'height': 0}) as page, ): await page.goto(url) - await page.wait_for_load_state('networkidle') - return await page.screenshot(full_page=True, type='png') + await page.wait_for_load_state('networkidle', timeout=5000) + return await page.screenshot(timeout=5000, full_page=True, type='png')