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

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

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

Cloud9は、クラウドからのプログラミングが可能になるWebサービス。IDEとしての機能が搭載されており、GitHubやHerokuなど他ツールとの連携も可能です。ブラウザ上で動くため、デバイスに関係なく開発環境を準備できます。

Firefox

Mozilla Foundationによって作られた無料、オープンソース、クロスプラットフォームなウェブブラウザ

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

selenium

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

Q&A

2回答

5230閲覧

selenium-webdriverがつながりません。

s.k

総合スコア423

Cloud9

Cloud9は、クラウドからのプログラミングが可能になるWebサービス。IDEとしての機能が搭載されており、GitHubやHerokuなど他ツールとの連携も可能です。ブラウザ上で動くため、デバイスに関係なく開発環境を準備できます。

Firefox

Mozilla Foundationによって作られた無料、オープンソース、クロスプラットフォームなウェブブラウザ

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

selenium

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

0グッド

1クリップ

投稿2017/02/10 04:22

編集2017/02/10 13:41

###前提・実現したいこと
著書:クローラー開発技法のサンプルコードを動かしたいです。

###発生している問題・エラーメッセージ

$ ruby login.rb /usr/local/rvm/gems/ruby-2.3.0/gems/selenium-webdriver-3.0.8/lib/selenium/webdriver/common/service.rb:130:in `connect_until_stable': unable to connect to Mozilla geckodriver 127.0.0.1:4444 (Selenium::WebDriver::Error::WebDriverError) from /usr/local/rvm/gems/ruby-2.3.0/gems/selenium-webdriver-3.0.8/lib/selenium/webdriver/common/service.rb:74:in `block in start' from /usr/local/rvm/gems/ruby-2.3.0/gems/selenium-webdriver-3.0.8/lib/selenium/webdriver/common/socket_lock.rb:41:in `locked' from /usr/local/rvm/gems/ruby-2.3.0/gems/selenium-webdriver-3.0.8/lib/selenium/webdriver/common/service.rb:71:in `start' from /usr/local/rvm/gems/ruby-2.3.0/gems/selenium-webdriver-3.0.8/lib/selenium/webdriver/firefox/w3c_bridge.rb:32:in `initialize' from /usr/local/rvm/gems/ruby-2.3.0/gems/selenium-webdriver-3.0.8/lib/selenium/webdriver/common/driver.rb:52:in `new' from /usr/local/rvm/gems/ruby-2.3.0/gems/selenium-webdriver-3.0.8/lib/selenium/webdriver/common/driver.rb:52:in `for' from /usr/local/rvm/gems/ruby-2.3.0/gems/selenium-webdriver-3.0.8/lib/selenium/webdriver.rb:82:in `for' from /usr/local/rvm/gems/ruby-2.3.0/gems/capybara-2.12.0/lib/capybara/selenium/driver.rb:22:in `browser' from /usr/local/rvm/gems/ruby-2.3.0/gems/capybara-2.12.0/lib/capybara/selenium/driver.rb:55:in `visit' from /usr/local/rvm/gems/ruby-2.3.0/gems/capybara-2.12.0/lib/capybara/session.rb:252:in `visit' from /usr/local/rvm/gems/ruby-2.3.0/gems/capybara-2.12.0/lib/capybara/dsl.rb:52:in `block (2 levels) in <module:DSL>' from login.rb:16:in `login' from login.rb:27:in `<main>'

調べたところ、selenium-webdriverのバージョン不対応によるエラーであるとわかりました。

解決策として乗っていたのは、
そのバージョンを下げるか、上げるかでした。

しかし、そのどちらも試しましたが同様のエラーが出てしまいます。

下げた時:2.53.4
上げた時:3.0.8

###該当のソースコード

【login.rb】

# -*- coding: utf-8 -*- require 'capybara' require 'capybara/dsl' require 'selenium-webdriver' Capybara.current_driver = :selenium Capybara.app_host = "https://affiliate.amazon.co.jp/" Capybara.default_max_wait_time = 5 module Crawler class Amazon include Capybara::DSL def login visit('') fill_in "username", :with => 'メールアドレス' fill_in "password", :with => 'パスワード' click_button "サインイン" end end end crawler = Crawler::Amazon.new crawler.login

ご経験ある方、指南お願いします!

###追加

/usr/local/rvm/gems/ruby-2.3.0/gems/selenium-webdriver-3.0.8/lib/selenium/webdriver/common/service.rb:59:in `binary_path': 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)
driver = Selenium::WebDriver.for :chrome
$ ls /usr/local/rvm/rubies/ruby-2.3.0/bin chromedriver erb* gem* irb* rake* rdoc* ri* ruby*

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2017/02/10 04:54

passwordの部分はコードに書いたままで大丈夫ですか?
s.k

2017/02/10 04:58

修正しました!ありがとうございます!
退会済みユーザー

退会済みユーザー

2017/02/10 05:03

いえいえ。本物ぽかったので大丈夫かなと。何事もなかったみたいでよかったです。
s.k

2017/02/10 05:12

迂闊でした…
guest

回答2

0

Ruby

1driver = Selenium::WebDriver.for :chrome

この指定方法は、selenium-webdriverを生で扱う場合です。
今回は、capybaraからSeleniumを扱いますので、指定方法が違います。

回答を下記にしました。
https://teratail.com/questions/65373

投稿2017/02/12 13:20

編集2017/02/12 13:22
hotu_ta

総合スコア114

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

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

0

こんばんは。ズバリという回答にはならないかもしれませんが、ちょうど手元の環境でSeleniumを使っていたので、こちらのgemやgeckodriverのバージョンを見くらべてみました。

動いているのは、以下の組み合わせです。

  • selenium-webdriver: 2.53.4
  • ruby 2.3.2p217
  • geckodriver 0.11.1

同様の現象になるかも?と思ってselenium-webdriverを3.0.8にしてみましたが、特に問題は出ませんでした。

...ここまで確認したところで、そういえば昨年はデフォルトでFirefoxで動かしていたのですが、いつからかうまく動かなくなったので、利用するブラウザをChromeに切り替えたのを思い出しました。

試しにFirefoxに切り替えて上記の組み合わせで動かすと、タイムアウト。
selenium-webdriver 3.0.8にすると、動くには動くのですが、なぜかテストごとにブラウザが正しく終了してくれない感じで、症状は違うのですが、期待通りに動きませんでした。

Firefoxのバージョンを上げてから動かなくなった気がします。
手元でどうしても失敗するFirefoxは、バージョンが51.0.1です。
49ぐらいから失敗するようになったかも。

根本的な解決にはならないかもしれませんが、Chromeを使ってみてはいかがでしょうか。

投稿2017/02/10 12:21

suama

総合スコア1997

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

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

s.k

2017/02/10 12:24

suamaさん! いつもありがとうございます! 今すぐ、試してみます!
s.k

2017/02/10 13:41

追加の質問すみません。 気が向いたら答えてください。 Chromeに移行しようとしたところ、追加に記載したエラーが発生しました。。。。 ディレクトリもあっているのになぜこのようなエラーが出てしまうのでしょうか(+_+)
suama

2017/02/10 23:06

ls したら * のついているものがありますが、chromedriver にはついていませんよね? その違いだと思いますよ。
s.k

2017/02/11 02:46

なるほどです!リンクにすればいいんですね!
suama

2017/02/11 06:04

念のため。。。 chromedriver に実行権限がついているかどうか、です。 単純にコマンドで /usr/local/rvm/rubies/ruby-2.3.0/bin/chromedriver と入力した際に、こんなメッセージが出ないのでしたら、実行権限が付いていないということになります。 Starting ChromeDriver 2.21.371459 (xxxxxxx) on port 9515 Only local connections are allowed. geckodriver も本来は単独で実行すると port xxxx で起動、というメッセージが出ます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問