前提・実現したいこと
cloud9上でruby on railsのseleniumを導入したい
cloud9上でruby on railsのseleniumを導入したいのですが
chromedriverをPATHに通してくださいと言われて困っています。
chromeとselenium-webdriverはダウンロード、インストールできています。
発生している問題・エラーメッセージ
/home/ec2-user/.rvm/gems/ruby-2.5.1/gems/selenium-webdriver-3.142.3/lib/selenium/webdriver/common/service.rb:136:in `binary_path': Unable to find chromedriver. Please download the server from (Selenium::WebDriver::Error::WebDriverError) https://chromedriver.storage.googleapis.com/index.html and place it somewhere on your PATH.
ruby
試したこと
以下のサイトを参考に
which rubyしたときに出てくるディレクトリに最新版のchromedriverを入れて再度実行しましたが
同じエラーがでてきました。
https://qiita.com/nwtgck/items/cfb5052135b8e64af01c
seleniumの導入の仕方を検索するとgem 'chromedriver'でインストールするように書かれておりますが
そのようなgemが見つかりません。どなたかやり方を教えていただけませんか。
which rubyで表示されたところにchromedriverを入れたとありますが、その後、which chromedriver と入力したら同じパスが出ますか?
また、パスが表示された場合、 chromedriver -v と入力してバージョンが表示されますでしょうか?
which rubyと入力すると
~/.rvm/rubies/ruby-2.5.1/bin/ruby
と出てきます。
同じディレクトリ~/.rvm/rubies/ruby-2.5.1/bin
にchromedriver.exeをコピーさせてwhich chromedriverと入力すると
/usr/bin/which: no chromedriver in (/home/ec2-user/.rvm/gems/ruby-2.5.1/bin:/home/ec2-user/.rvm/gems/ruby-2.5.1@global/bin:以下略
と出てきます。
ありがとうございます。気になるのは、chromedriver.exe というところですが、exeだとWindows版な気がします。Linux版を使ってみてくださいね。
回答を書いてみますね!
ありがとうございます。Linux版を入れましたが同じメッセージが出てきます・・・
唯一変化があって、chromedriver -v を入力すると
bash: /home/ec2-user/.rvm/rubies/ruby-2.5.1/bin/chromedriver: Permission denied
と出てきます。。。
回答のほうに追記をしていますので、そちらを読んでくださいね。
> 動かない場合は、実行可能なモードになっているか確認してみてください。
> chmod 755 chromedriver としてみて下さい
と書いています。実行権限がついていないからですね。
あと、回答についてのコメントになるので、できれば回答の方にお願いします!
ありがとうございます。
Lintx版のchromeをダウンロードして回答いただいた通りにPATHを通しました。
再度スクレイピングを実行したら以下のようなエラーが出てきました。。。
chromeを再ダウンロードしましたが一向に解決しません。
この後はどのようにすれば解決できるでしょうか。
#0 0x557500c7e6e9 <unknown>: unknown error: Chrome failed to start: exited abnormally (Selenium::WebDriver::Error::UnknownError)
(unknown error: DevToolsActivePort file doesn't exist)
(The process started from chrome location /opt/google/chrome/google-chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.)
ちなみにスクレイピングのコードはテスト用で以下のようなものです。
require 'selenium-webdriver'
driver = Selenium::WebDriver.for :chrome
driver.get "http://google.com"

回答2件
あなたの回答
tips
プレビュー