diff --git a/changedetectionio/content_fetchers/puppeteer.py b/changedetectionio/content_fetchers/puppeteer.py index 3e39b5e6362..22b6856909c 100644 --- a/changedetectionio/content_fetchers/puppeteer.py +++ b/changedetectionio/content_fetchers/puppeteer.py @@ -147,7 +147,7 @@ async def fetch_page(self, is_binary, empty_pages_are_a_change ): - + import re self.delete_browser_steps_screenshots() extra_wait = int(os.getenv("WEBDRIVER_DELAY_BEFORE_CONTENT_READY", 5)) + self.render_extract_delay @@ -172,6 +172,17 @@ async def fetch_page(self, # headless - ask a new page self.page = (pages := await browser.pages) and len(pages) or await browser.newPage() + if '--window-size' in self.browser_connection_url: + # Be sure the viewport is always the window-size, this is often not the same thing + match = re.search(r'--window-size=(\d+),(\d+)', self.browser_connection_url) + if match: + logger.debug(f"Setting viewport to same as --window-size in browser connection URL {int(match.group(1))},{int(match.group(2))}") + await self.page.setViewport({ + "width": int(match.group(1)), + "height": int(match.group(2)) + }) + logger.debug(f"Puppeteer viewport size {self.page.viewport}") + try: from pyppeteerstealth import inject_evasions_into_page except ImportError: @@ -218,7 +229,6 @@ async def fetch_page(self, response = await self.page.goto(url, waitUntil="load") - if response is None: await self.page.close() await browser.close()