質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Chrome

Google Chromeは携帯、テレビ、デスクトップなどの様々なプラットフォームで利用できるウェブブラウザです。Googleが開発したもので、Blink (レンダリングエンジン) とアプリケーションフレームワークを使用しています。

selenium

Selenium(セレニウム)は、ブラウザをプログラムで作動させるフレームワークです。この原理を使うことにより、ブラウザのユーザーテストなどを自動化にすることができます。

Q&A

解決済

2回答

1470閲覧

ruby seleniumエラー(unknown error: cannot find Chrome binary)

pokerStars

総合スコア67

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Chrome

Google Chromeは携帯、テレビ、デスクトップなどの様々なプラットフォームで利用できるウェブブラウザです。Googleが開発したもので、Blink (レンダリングエンジン) とアプリケーションフレームワークを使用しています。

selenium

Selenium(セレニウム)は、ブラウザをプログラムで作動させるフレームワークです。この原理を使うことにより、ブラウザのユーザーテストなどを自動化にすることができます。

0グッド

0クリップ

投稿2018/09/24 06:07

実行しようとするとこのようなエラーが出ます。
in assert_ok: unknown error: cannot find Chrome binary (Selenium::WebDriver::Error::UnknownError)

色々調べたのですが、chromeとchromediveloperのバージョンの違いやファイルの置く場所がどうのこうのと、いまいち理解できませんでした。

どのようにすればエラーが解消されますでしょうか?よろしくお願いいたします(>人<;)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

CHERRY

2018/09/24 15:12

そのようなコードを記載したのでしょうか?
guest

回答2

0

ベストアンサー

mac ということなので... 推測も含めて...

ChromeDriver - WebDriver for Chrome にパスの指定方法に関して、

Path to the Chrome executable to use (on Mac OS X, this should be the actual binary, not just the app. e.g., '/Applications/Google Chrome.app/Contents/MacOS/Google Chrome')

とありますが...


(2018-09-25 11:45追記)

ドキュメントを読んだ感じでは、パスの指定が必要かと思ったのですが、macOS で実際に試してみたらオプションでバイナリーパスを設定しなくても動作するようです。

Chrome が、/Applications/Google Chrome.app にあり http://chromedriver.storage.googleapis.com/index.html?path=2.42/ からダウンロードした chromedriver を パスが通った場所にコピーしておいて、

require "selenium-webdriver" driver = Selenium::WebDriver.for :chrome driver.get("https://www.google.com") puts driver.title

だけで問題なく動作して、ページタイトルが取れました。

また、コメントに書かれていたソースコードで、下記の Webdriver 部分だけを実行してみるとエラーは出ませんでしたので、環境構築の問題のように思えます。

require "selenium-webdriver" driver = Selenium::WebDriver.for :chrome driver.navigate.to 'https://www.justwatch.com/jp/検索?q=あああ' wait = Selenium::WebDriver::Wait.new(timeout: 300) wait.until { driver.find_element(xpath: '//div[2]/filter-bar/div[2]/div[2]/div[3]/div[2]/div') }

which chromedriver で、 chromedriver は、見つかる場所にありますか?
まずは、簡単な動作からテストして、動くのを確認してから本来のプログラムを書く方が良いと思いますので、上記の"Google" のタイトルを取得するプログラムを動かしてみてください。

投稿2018/09/24 15:15

編集2018/09/25 02:51
CHERRY

総合スコア25171

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

pokerStars

2018/09/25 00:40

パスの指定方法のやり方がいまいち理解できませんでした。 コードは `require 'selenium-webdriver' require 'nokogiri' driver = Selenium::WebDriver.for :chrome driver.navigate.to 'https://www.justwatch.com/jp/検索?q=あああ' wait = Selenium::WebDriver::Wait.new(timeout: 300) wait.until { driver.find_element(xpath: '//div[2]/filter-bar/div[2]/div[2]/div[3]/div[2]/div') } doc = Nokogiri::HTML.parse(driver.execute_script('return document.documentElement.innerHTML')) # 検索結果のタイトルを表示 doc.xpath('//div[2]/filter-bar/ng-transclude/core-list/div/div/div').each do |node| puts node.xpath('search-result-entry/div/div[2]/div[1]/a/span[1]').text end` このようなものを書きました!
pokerStars

2018/09/25 00:41

パスというのは何かを同じフォルダに入れるということでしょうか?
guest

0

お使いのPCにChromeがインストールされていることが前提です。
Windowsの場合は以下の記事を見て環境を構築してください。

Rubyとselenium-webdriverのインストールが完了してる場合は
以下の記事の「Chrome Driverの設置」からでOKだと思います

以下の記事の通りに環境を構築しても、同様のエラーが発生する場合は
原因が一般的なものではない可能性があり対応が難しいと思われます。

【超入門】windowsならruby + selenium webdriverも環境設定は15分で終わる

投稿2018/09/24 10:02

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

pokerStars

2018/09/24 14:20

自分はmacでクロームはインストールしてあるのですが、それでもダメなのでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問