Search code examples
pythongoogle-chromeselenium-webdriverselenium-chromedriverscreenshot

WARNING: tile memory limits exceeded, some content may not draw and Unable to capture screenshot while rendering long page using ChromeDriver Selenium


Using Selenium Web driver with Python, I am capturing screenshot from a page which is very long. Getting the following error. Normally, I got any page's screenshots without any problem.

[1112/102333.244:ERROR:tile_manager.cc(779)] WARNING: tile memory limits exceeded, some content may not draw
[1112/102333.296:ERROR:tile_manager.cc(779)] WARNING: tile memory limits exceeded, some content may not draw
[1112/102333.305:ERROR:tile_manager.cc(779)] WARNING: tile memory limits exceeded, some content may not draw
[1112/102337.235:ERROR:tile_manager.cc(779)] WARNING: tile memory limits exceeded, some content may not draw
[1112/102337.237:ERROR:tile_manager.cc(779)] WARNING: tile memory limits exceeded, some content may not draw
[1112/102337.241:ERROR:tile_manager.cc(779)] WARNING: tile memory limits exceeded, some content may not draw
[1112/102337.243:ERROR:tile_manager.cc(779)] WARNING: tile memory limits exceeded, some content may not draw
[1112/102357.562:ERROR:tile_manager.cc(779)] WARNING: tile memory limits exceeded, some content may not draw
[1112/102357.572:ERROR:tile_manager.cc(779)] WARNING: tile memory limits exceeded, some content may not draw
[1112/102357.585:ERROR:tile_manager.cc(779)] WARNING: tile memory limits exceeded, some content may not draw
[1112/102357.587:ERROR:tile_manager.cc(779)] WARNING: tile memory limits exceeded, some content may not draw
[1112/102358.050:ERROR:tile_manager.cc(779)] WARNING: tile memory limits exceeded, some content may not draw
[1112/102358.053:ERROR:tile_manager.cc(779)] WARNING: tile memory limits exceeded, some content may not draw
[1112/102358.058:ERROR:tile_manager.cc(779)] WARNING: tile memory limits exceeded, some content may not draw
[1112/102358.060:ERROR:tile_manager.cc(779)] WARNING: tile memory limits exceeded, some content may not draw
[1112/102429.223:ERROR:tile_manager.cc(779)] WARNING: tile memory limits exceeded, some content may not draw
[1112/102429.225:ERROR:tile_manager.cc(779)] WARNING: tile memory limits exceeded, some content may not draw
[1112/102430.153:ERROR:tile_manager.cc(779)] WARNING: tile memory limits exceeded, some content may not draw
[1112/102430.156:ERROR:tile_manager.cc(779)] WARNING: tile memory limits exceeded, some content may not draw
[1112/102430.158:ERROR:tile_manager.cc(779)] WARNING: tile memory limits exceeded, some content may not draw
[1112/102430.169:ERROR:tile_manager.cc(779)] WARNING: tile memory limits exceeded, some content may not draw
[1112/102430.170:ERROR:tile_manager.cc(779)] WARNING: tile memory limits exceeded, some content may not draw
[1112/102503.275:ERROR:tile_manager.cc(779)] WARNING: tile memory limits exceeded, some content may not draw
[1112/102503.278:ERROR:tile_manager.cc(779)] WARNING: tile memory limits exceeded, some content may not draw    

Traceback (most recent call last): in get_screenshot_as_file
  File "page-screen-shooter.py", line 101, in <module>
    driver.save_screenshot(screen_shot_save_location + "{0}.png".format(i+1))           , in get_screenshot_as_png
  File "C:\Python37\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 1055, in save_screenshot
    return self.get_screenshot_as_file(filename)
  File "C:\Python37\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 1032, in get_screenshot_as_file
    png = self.get_screenshot_as_png()
  File "C:\Python37\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 1064, in get_screenshot_as_png
    return base64.b64decode(self.get_screenshot_as_base64().encode('ascii'))
  File "C:\Python37\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 1074, in get_screenshot_as_base64
    return self.execute(Command.SCREENSHOT)['value']
  File "C:\Python37\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute
    self.error_handler.check_response(response)
  File "C:\Python37\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message: timeout: Timed out receiving message from renderer: 1.789
  (Session info: headless chrome=78.0.3904.97)

In my code, I have following options:

chrome_options.add_argument("--start-maximized")
chrome_options.add_argument("--headless")
chrome_options.add_argument("--log-level=3")

I removed the following option.

chrome_options.add_argument("--start-maximized")

However I got another error:

selenium.common.exceptions.WebDriverException: Message: unknown error: unhandled inspector error: {"code":-32000,"message":"Unable to capture screenshot"}
  (Session info: headless chrome=78.0.3904.97)

Solution

  • This error message...

    [1112/102333.244:ERROR:tile_manager.cc(779)] WARNING: tile memory limits exceeded, some content may not draw
    .
    selenium.common.exceptions.TimeoutException: Message: timeout: Timed out receiving message from renderer: 1.789
        (Session info: headless chrome=78.0.3904.97)
    

    ...implies that the ChromeDriver was unable to unable to capture screenshot of the WebBrowser i.e. chrome=78.0.3904.97.


    As per the error trace logs though it is evident that you are using chrome=78.0.3904.97 but we are unsure about the ChromeDriver version.

    Now as per the discussion Issue 1893: java.lang.AssertionError: unknown error: unhandled inspector error the error:

    unknown error: unhandled inspector error: {"code":-32000,"message":"Unable to capture screenshot"}
    

    was a known issue with capturing screenshot on Windows which was discussed within Issue 1844: Chrome 59 remote desktop chromedriver.exe saves white/blank screenshots and was addressed through Chrome v60.0.3112.40.


    Solution

    The simplest solution would be to ensure that:


    Outro

    Issue 792: Android Emulator - Unable to capture screenshot