Examples

How to take a full page screenshot with Ruby and Selenium

Install Selenium for Ruby

gem install selenium-webdriver

selenium-webdriver 4.11+ includes Selenium Manager, which downloads the right chromedriver automatically — the separate webdrivers gem is no longer needed.

Take full page screenshot and save to file

require 'selenium-webdriver'

options = Selenium::WebDriver::Chrome::Options.new
options.add_argument('--headless=new')

driver = Selenium::WebDriver.for(:chrome, options: options)

driver.get('https://www.htmltoimage.com/demo')

width  = driver.execute_script('return document.documentElement.scrollWidth')
height = driver.execute_script('return document.documentElement.scrollHeight')
driver.manage.window.resize_to(width, height)

driver.save_screenshot('./full-page.png')

driver.quit

Find out how to change the size of the viewport with Ruby and Selenium.

That was 16 lines of code — plus a browser to run in production

Keeping headless browsers fed, patched and scaled is a job in itself. We built Urlbox so the same screenshot is one API call:

curl "https://api.urlbox.com/v1/YOUR_API_KEY/png?url=https://example.com"

Try the Urlbox screenshot API — free trial, no browser babysitting.