title: How do I use Selenium Webdriver on headless Chrome?
body: <p>I'm learning to use Selenium for basic things like taking a screenshot, scraping, and testing and would like to use it with headless Chrome, which is now stable as of Chrome 59. </p>
  
  <p>I have been able to take a screenshot using the 'selenium-webdriver' gem and chromedriver, but not headless.</p>
  
  <p>Here is the ruby script that I am running which hangs after starting to initialize the driver</p>
  
  <pre><code>require 'rubygems'
  require 'selenium-webdriver'
  
  Selenium::WebDriver.logger.level = :debug
  p 'initializing driver'
  driver = Selenium::WebDriver.for :chrome, switches: %w[--headless --disable-gpu --screenshot --hide-scrollbars]
  p 'navigating to Google'
  driver.navigate.to "http://google.com"  
  driver.save_screenshot("./screen.png")
  driver.quit
  </code></pre>
  
  <p>and the output  from the logs:</p>
  
  <pre><code>:&gt; ruby rubytest.rb
  "initializing driver"
  2017-06-07 15:55:43 DEBUG Selenium Executing Process 
  
  ["/Users/name/Documents/scrapings/python/env/bin/chromedriver", "--port=9515"]
  2017-06-07 15:55:43 DEBUG Selenium polling for socket on ["127.0.0.1", 9515]
  Starting ChromeDriver 2.29.461585 (0be2cd95f834e9ee7c46bcc7cf405b483f5ae83b) on port 9515
  Only local connections are allowed.
  2017-06-07 15:55:43 INFO Selenium -&gt; POST session
  2017-06-07 15:55:43 INFO Selenium    &gt;&gt;&gt; http://127.0.0.1:9515/session | {"desiredCapabilities":{"browserName":"chrome","version":"","platform":"ANY","javascriptEnabled":true,"cssSelectorsEnabled":true,"takesScreenshot":false,"nativeEvents":false,"rotatable":false,"chromeOptions":{"args":["--headless","--disable-gpu","--screenshot","--hide-scrollbars"]}}}
  2017-06-07 15:55:43 DEBUG Selenium      &gt; {"Accept"=&gt;"application/json", "Content-Type"=&gt;"application/json; charset=utf-8", "Content-Length"=&gt;"284"}
  [RUBY BACKTRACE TO DRIVER INITIALIZATION]
  </code></pre>
  
  <p>I have tried using the JavaScript and Python drivers with similar code and nothing works. When I try this with Python, the error message is </p>
  
  <pre><code>WebDriverException: Message: unknown error: Chrome failed to start: exited abnormally
    (Driver info: chromedriver=2.29.461585 (0be2cd95f834e9ee7c46bcc7cf405b483f5ae83b),platform=Mac OS X 10.12.5 x86_64)
  </code></pre>