LoginSignup
26
21

More than 5 years have passed since last update.

Rubyでseleniumを使おうとして導入でつまずいた件

Last updated at Posted at 2018-04-08

はじめに

この記事は導入時の簡単なトラブルシュートのメモになります。

つい先日、社会人デビューし配属が決まりました。
そこでseleniumを使いそうだなぁという勝手なイメージと、
そう言えば名前は知ってるけど使ったことないなぁということで触ってみようと思ったのが発端です。

そこで、

このあたりの記事を参考に動かしてみるぞ〜!!と意気込んでいたところ、
requireの時点でエラーが出てしまったため今後の自分のためにメモを残すことにしました。

何が起きたん?

selenium-webdriver

まずselenium-webdriverのインストール時に、

gem install selenium-webdriver

ではパーミッションエラーが出てしまいました。
こちらは単純に、

sudo gem install selenium-webdriver

で解決できました。

chromedriver

次に、chromeで動かそうと考えていたのでchromedriverのインストールを試みました。

とりあえず、ここからダウンロードしたchromedriverを実行しながらプログラムを動かしてみたところ...

Unable to find chromedriver. Please download the server from http://chromedriver.storage.googleapis.com/index.html and place it somewhere on your PATH. More info at https://github.com/SeleniumHQ/selenium/wiki/ChromeDriver. (Selenium::WebDriver::Error::WebDriverError)

ダメでした。
(最終的にここからダウンロードする必要はありませんでした。)

そこでよくよく調べてみると、/usr/sbin/にファイルを入れろ、といった記事をちらほら見つけました。

なるほどガッテンショウチ!と意気揚々と手を動かしたのですが、
このページ曰く、

保護対象となるのは/usrおよび/bin、/sbin、/System、/Applications/Utilities以下のディレクトリ

これらのディレクトリにはAppleのコード署名がされたシステムプロセスからしか書き込みが行えない

らしく、cpmvではファイルを移せないわけです(GUIでの移動ももちろん不可)。

リカバリーモードでOSを起動してcsrutilコマンドで設定することで、このrootlessという保護機能を無効化することもできるらしいのですが、そこまで手間を掛けたくない上に、なんか気持ち悪いのでさらに調べました。

すると、

brew install chromedriver

あ、Homebrewにあるのね。

おわりに

はい、Homebrewからインストールすることで一瞬で解決してしまいました。

自分は体験したので次回以降はしばらく印象に残っているので大丈夫だと思いますが、
調べていても情報が少なく案外すぐには解決せず、この段階で初心者は折れかねないと感じたのでこのようにメモにしました。

動作確認は、


require 'selenium-webdriver'

driver = Selenium::WebDriver.for :chrome #使用するブラウザを選択
driver.navigate.to "http://www.google.com" #URL指定
puts driver.title #ページタイトルを出力

element = driver.find_element(:name, 'description') #セレクタ指定
puts element.attribute('content') #コンソールに出力

driver.quit #ブラウザを閉じて終了

こんな感じのものを動かして問題なく終了すれば大丈夫です。

26
21
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
26
21