From 84fbcc31bd7ecea8deef735b755c81aebfc6688b Mon Sep 17 00:00:00 2001 From: Junwei Zhao Date: Mon, 4 Nov 2024 22:32:04 +1100 Subject: [PATCH] Add more options to fix chromium --- links/tasks.py | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/links/tasks.py b/links/tasks.py index 6f68141..08fdcfd 100644 --- a/links/tasks.py +++ b/links/tasks.py @@ -65,9 +65,21 @@ def capture_screenshot(self, page_id): chrome_options.add_argument('--headless') chrome_options.add_argument('--no-sandbox') chrome_options.add_argument('--disable-dev-shm-usage') - chrome_options.add_argument('--window-size=1920,1080') + chrome_options.add_argument('--disable-gpu') + chrome_options.add_argument('--window-size=1366,768') + chrome_options.add_argument('--disable-software-rasterizer') + chrome_options.add_argument('--disable-extensions') + chrome_options.binary_location = os.getenv('CHROME_BIN', '/usr/bin/chromium') + + chrome_service = webdriver.ChromeService( + executable_path=os.getenv('CHROMEDRIVER_PATH', '/usr/bin/chromedriver') + ) + + driver = webdriver.Chrome( + options=chrome_options, + service=chrome_service + ) - driver = webdriver.Chrome(options=chrome_options) try: driver.set_page_load_timeout(10) driver.get(page.url) @@ -92,7 +104,10 @@ def capture_screenshot(self, page_id): logger.info(f"Successfully captured screenshot for page {page_id}") finally: - driver.quit() + try: + driver.quit() + except Exception as e: + logger.warning(f"Error closing Chrome driver: {e}") except Exception as exc: logger.error(f"Failed to capture screenshot for page {page_id}: {exc}")