Ruby、seleniumでスクリーンショットを撮ろうとして困った話
困ったこと
以下のようなコードを書いてヘッダレスでWEBサイトを撮ろうと思ったら、エラーが出てうまく動かなかった。
require "selenium-webdriver"
...
options = Selenium::WebDriver::Chrome::Options.new
options.add_argument('--headless')
driver = Selenium::WebDriver.for :chrome, options: options
driver.manage.window.resize_to(width, height)
driver.get(url)
driver.save_screenshot(image_path)
driver.quit
出るエラーは、
unable to connect to chromedriver 127.0.0.1:9515
なにやらchromedriverとの連携がうまくいっていないらしい。chromedriverはhomebrewで入れたものをそのまま使っている。コマンドラインからそのまま叩いたらchromedriver自体は起動している(ように見える)ので、rubyとの連携がうまくいっていないのだろう、と思った。
ちょっと調べてみると、chromedriver-helper
というgemを入れたら動くようになったという情報を見つけたのでgemfileに加えてbundle install
すると・・・
+--------------------------------------------------------------------+
| |
| NOTICE: chromedriver-helper is deprecated after 2019-03-31. |
| |
| Please update to use the 'webdrivers' gem instead. |
| See https://github.com/flavorjones/chromedriver-helper/issues/83 |
| |
+--------------------------------------------------------------------+
なにやら最近非推奨のgemになったらしい。代わりにwebdriversというのを入れろと言われたので入れてみた。→うまくいった!
感想
色々なブラウザをサポートしているのかな、という感じ。(単にchromedriver-helperの更新が終わるから変わっただけかもしれない)
何はともあれ、動いてよかった
Author And Source
この問題について(Ruby、seleniumでスクリーンショットを撮ろうとして困った話), 我々は、より多くの情報をここで見つけました https://qiita.com/Akutagawa/items/ff35f0433a124fe40c20著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .