「とりあえずSelenium」のときはChromeを使ったほうが楽かもしれない

2016 年 7 月 19 日 by 山平

スクレイピングなど、とりあえずSeleniumで結果を確認しながら作りこみたい場合、利用するブラウザはFirefoxよりもChromeのほうが、余計な手間がかからなくて良いかもしれない、とおもった出来事があったので備忘録として残します。

seleniumでFirefoxを使おうとして、以下のようなエラーでブラウザが起動しないことが良くあります。

Failure/Error: visit root_path Selenium::WebDriver::Error::WebDriverError: unable to obtain stable firefox connection in 60 seconds (127.0.0.1:7055)

これはwebdriverとFirefoxのバージョンの差が原因で、うまく操作できなくなっている状態です。
エラーメッセージで検索すれば対処方法がたくさんヒットするので、それを参考に対応します。

ただ、現実問題として、毎回selenium環境を整えるわけでもなく、とりあえず動かすためだけに手元のブラウザをダウングレードするのは、気分的にもセキュリティ的にも好ましくありません。
webdriver側はbundlerでローカルのみバージョンをコントロールできるので良いのですが。。。
とはいえ、次のバージョンアップを待ってから開発する、というのもありえない。

ということが何度もあったので、とりあえず動かすだけならChromeの方が楽だなあと感じています。

上のサイトにセットアップの方法がありますが、rubyのselenium-webdriverでChromeを使う場合、Google製のchromedriverが必要になります。

ちょっと面倒に感じますが、ChromeもchromedriverもGoogle製なので、webdriverとFirefoxよりもバージョン差に起因する問題が対処されるまでの時間が短いと考えられます。
実際、Firefoxを動かすために何時間も頑張って、結局諦めてChromeにしたら15分かからずに動き出しましたし。

OSSの文化を否定するわけではありませんが、依存関係にハマるとしんどいのは今も昔も同じですね。

タグ: , ,

TrackBack