I am exploring the use of Selenium for basic things like taking screenshots, clips and testing, and would like to use it with Chrome headless, which is now stable with Chrome 59.
I managed to take a screenshot using the selenium-webdriver gemstone and chrome-plated reverse, but not without a head.
Here is the ruby ββscript that I run, freezing after starting the driver initialization
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
and output from logs:
:> 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 -> POST session 2017-06-07 15:55:43 INFO Selenium >>> 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 > {"Accept"=>"application/json", "Content-Type"=>"application/json; charset=utf-8", "Content-Length"=>"284"} [RUBY BACKTRACE TO DRIVER INITIALIZATION]
I tried using JavaScript and Python drivers with similar code and nothing works. When I try this with Python, the error message
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)