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

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

ただいまの
回答率

90.53%

  • Ruby

    9225questions

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

  • Linux

    4373questions

    Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

  • Ubuntu

    1747questions

    Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

Rubyによるクローラー開発技法のサンプルプログラムが動かない

解決済

回答 2

投稿 編集

  • 評価
  • クリップ 1
  • VIEW 3,223

dlrowolleh

score 112

前提・実現したいこと→プログラムを動作させたい

Rubyによるクローラー開発技法
を参考にUbuntu15.10環境でプログラムを作成しています。
プログラムは一字一句写し間違えていないはずなのですが、
実行しようとしたところ、エラーが発生しました。

試したこと

$ ruby login.rb 
DEPRECATED: #default_wait_time= is deprecated, please use #default_max_wait_time= instead
/home/pc/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/selenium-webdriver-3.0.0/lib/selenium/webdriver/firefox.rb:58:in `driver_path':         Unable to find Mozilla geckodriver. Please download the server from        https://github.com/mozilla/geckodriver/releases and place it        somewhere on your PATH. More info at https://developer.mozilla.org/en-US/docs/Mozilla/QA/Marionette/WebDriver. (Selenium::WebDriver::Error::WebDriverError)
    from /home/pc/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/selenium-webdriver-3.0.0/lib/selenium/webdriver/firefox/w3c_bridge.rb:30:in `initialize'
    from /home/pc/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/selenium-webdriver-3.0.0/lib/selenium/webdriver/common/driver.rb:49:in `new'
    from /home/pc/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/selenium-webdriver-3.0.0/lib/selenium/webdriver/common/driver.rb:49:in `for'
    from /home/pc/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/selenium-webdriver-3.0.0/lib/selenium/webdriver.rb:82:in `for'
    from /home/pc/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/capybara-2.10.1/lib/capybara/selenium/driver.rb:20:in `browser'
    from /home/pc/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/capybara-2.10.1/lib/capybara/selenium/driver.rb:53:in `visit'
    from /home/pc/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/capybara-2.10.1/lib/capybara/session.rb:240:in `visit'
    from /home/pc/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/capybara-2.10.1/lib/capybara/dsl.rb:52:in `block (2 levels) in <module:DSL>'
    from login.rb:15:in `login'
    from login.rb:26:in `<main>'


課題に対してアプローチしたことを記載してください

該当のソースコード

# -*- 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_wait_time = 5

module Crawler
    class Amazon
        include Capybara::DSL

        def login
            visit('')
            fill_in "username",
            :with => 'YOUR_AMAZON_USER_ID'
            fill_in "password",
            :with => 'YOUR_AMAZON_PASSWORD'
            click_button "$B%5%$%s%$%s(B"
        end
    end
end

crawler = Crawler::Amazon.new
crawler.login

補足情報(言語/FW/ツール等のバージョンなど)

$ ruby -v
ruby 2.2.4p230 (2015-12-16 revision 53155) [x86_64-linux]
$ gem -v
2.4.5.1
$ gem list

*** LOCAL GEMS ***

addressable (2.4.0)
bigdecimal (1.2.6)
capybara (2.10.1)
childprocess (0.5.9)
cliver (0.3.2)
ffi (1.9.14)
io-console (0.4.3)
jar_wrapper (0.1.8)
json (1.8.1)
mime-types (3.1)
mime-types-data (3.2016.0521)
mini_portile2 (2.1.0)
minitest (5.4.3)
nokogiri (1.6.8.1)
poltergeist (1.11.0)
power_assert (0.2.2)
psych (2.0.8)
rack (2.0.1)
rack-test (0.6.3)
rake (10.4.2)
rdoc (4.2.0)
rubyzip (1.2.0)
selenium (0.2.11)
selenium-webdriver (3.0.0)
test-unit (3.0.8)
websocket (1.2.3)
websocket-driver (0.6.4)
websocket-extensions (0.1.2)
xpath (2.0.0)
zip (2.0.2)
$ gem env
RubyGems Environment:
  - RUBYGEMS VERSION: 2.4.5.1
  - RUBY VERSION: 2.2.4 (2015-12-16 patchlevel 230) [x86_64-linux]
  - INSTALLATION DIRECTORY: /home/pc/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0
  - RUBY EXECUTABLE: /home/pc/.rbenv/versions/2.2.4/bin/ruby
  - EXECUTABLE DIRECTORY: /home/pc/.rbenv/versions/2.2.4/bin
  - SPEC CACHE DIRECTORY: /home/pc/.gem/specs
  - SYSTEM CONFIGURATION DIRECTORY: /home/pc/.rbenv/versions/2.2.4/etc
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86_64-linux
  - GEM PATHS:
     - /home/pc/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0
     - /home/pc/.gem/ruby/2.2.0
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - https://rubygems.org/
  - SHELL PATH:
     - /home/pc/.rbenv/versions/2.2.4/bin
     - /usr/lib/rbenv/libexec
     - /home/pc/.rbenv/plugins/ruby-build/bin
     - /home/pc/.rbenv/shims
     - /home/pc/.rbenv/bin
     - /home/pc/.rbenv/shims
     - /home/pc/.rbenv/bin
     - /usr/local/sbin
     - /usr/local/bin
     - /usr/sbin
     - /usr/bin
     - /sbin
     - /bin
     - /usr/games
     - /usr/local/games


です。

追記

いろいろと調べているのですが、やり方がさっぱり分かりませんでした。
ひとまず、
https://developer.mozilla.org/ja/docs/Mozilla/QA/Marionette/WebDriver
Rubyの項目に書いてある、

$ gem install selenium-webdriver


は実行しています。
https://github.com/mozilla/geckodriver/releasesから
geckodriver-v0.11.1-linux64.tar.gzをダウンロードして、
ファイルマネージャから
右クリックで展開しました。
すると、
geckodriverという実行ファイルが出てきたので、
端末を開き、geckodriverがある場所で

$ ./geckodriver


と実行してみたところ、

1478251811427    geckodriver    INFO    Listening on 127.0.0.1:4444


と表示されます。

また、[新卒向け] Linux開発環境の基礎知識
を参考に

$ tar zxvf geckodriver-v0.11.1-linux64.tar.gz
geckodriver
$ ./configure
bash: ./configure: そのようなファイルやディレクトリはありません


となりました。
このあと、どのようにすればいいのか分かりませんでした。
また、どのような情報を提供すれば良いのかも分からず、困っております。
何卒よろしくお願いします。

となりました。

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • 退会済みユーザー

    退会済みユーザー

    2016/11/04 20:56

    パスの通ったディレクトリに geckodriver を置いて、ruby login.rb を実行した結果はどうなりましたか?

    キャンセル

  • dlrowolleh

    2016/11/04 21:31

    ありがとうございます。firefoxが起動して、プログラムが動作しました。しかし、ログアウトするとやり直さないといけないようです。

    キャンセル

  • 退会済みユーザー

    退会済みユーザー

    2016/11/04 21:36

    あとは環境変数関連ですね。コメントしておきましたので、頑張ってください。

    キャンセル

回答 2

checkベストアンサー

+3

Please download the server from https://github.com/mozilla/geckodriver/releases

この説明のように geckodriver をダウンロードしたようですので、その次の

place it somewhere on your PATH.

を実行しましょう。Linux で bash だと思うのですが

set | grep PATH

を実行してみましょう。そうすると

PATH=/usr/local/sbin:/usr/local/heroku/bin:/Users/BSDmad/.rbenv/shims:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

のように PATH 環境変数に設定されているパスが表示されると思います。

  1. 表示されたいずれかのディレクトリに geckodriver をコピー
  2. 自分の .bash_profile の PATH 変数に $HOME/bin を追加し、mkdir ~/bin を実行後、~bin/ 下に geckodriver をコピー

のいずれかをやってから、もう一度 ruby login.rb を実行してみて下さい。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/11/04 21:28

    返信いただきありがとうございます。
    文字数を超えてしまったので、こちらで追記させていただきます。(読みにくくなってしまいすみません)

    ##追記2
    ```
    $ set | grep PATH
    DEFAULTS_PATH=/usr/share/gconf/ubuntu.default.path
    MANDATORY_PATH=/usr/share/gconf/ubuntu.mandatory.path
    PATH=/home/pc/.rbenv/shims:/home/pc/.rbenv/bin:/home/pc/.rbenv/shims:/home/pc/.rbenv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
    XDG_SEAT_PATH=/org/freedesktop/DisplayManager/Seat0
    XDG_SESSION_PATH=/org/freedesktop/DisplayManager/Session0
    local cmd PATH=$PATH:/sbin;
    if [[ -z "${CDPATH:-}" || "$cur" == ?(.)?(.)/* ]]; then
    for i in ${CDPATH//:/'
    PATH=$PATH:/usr/sbin:/sbin:/usr/local/sbin type $1 &> /dev/null
    COMPREPLY=($( compgen -W "$( PATH="$PATH:/sbin" lsmod | awk '{if (NR != 1) print $1}' )" -- "$1" ))
    local PATH=$PATH:/sbin;
    local PATH="$PATH:/sbin:/usr/sbin";
    COMPREPLY+=($( compgen -W "$( PATH="$PATH:/sbin" lspci -n | awk '{print $3}')" -- "$cur" ))
    local PATH=$PATH:/sbin:/usr/sbin:/usr/local/sbin;
    COMPREPLY+=($( compgen -W "$( PATH="$PATH:/sbin" lsusb | awk '{print $6}' )" -- "$cur" ))
    ```

    表示さました。
    #追記3
    ```
    $ cp geckodriver /home/pc/.rbenv/shims
    ```
    を実行したあと、
    ```
    $ ruby login.rb
    ```
    を実行すると、firefoxが立ち上がって、`https://affiliate.amazon.co.jp/`のページが開いて
    すでに登録済みの方はこちらからログインしてください
    Eメールアドレスまたは携帯電話番号
    パスワード
    欄に文字が入力されました。

    ```
    $ ruby login.rb
    DEPRECATED: #default_wait_time= is deprecated, please use #default_max_wait_time= instead
    /home/pc/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/capybara-2.10.1/lib/capybara/node/finders.rb:44:in `block in find': Unable to find button "\e$B%5%$%s%$%s\e(B" (Capybara::ElementNotFound)
    from /home/pc/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/capybara-2.10.1/lib/capybara/node/base.rb:85:in `synchronize'
    from /home/pc/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/capybara-2.10.1/lib/capybara/node/finders.rb:33:in `find'
    from /home/pc/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/capybara-2.10.1/lib/capybara/node/actions.rb:57:in `click_button'
    from /home/pc/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/capybara-2.10.1/lib/capybara/session.rb:735:in `block (2 levels) in <class:Session>'
    from /home/pc/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/capybara-2.10.1/lib/capybara/dsl.rb:52:in `block (2 levels) in <module:DSL>'
    from login.rb:20:in `login'
    from login.rb:26:in `<main>'
    ```
    と表示されました。
    ただ、
    ```
    $ exit
    ```
    のあと実行しようとすると、
    ```
    $ ruby login.rb
    DEPRECATED: #default_wait_time= is deprecated, please use #default_max_wait_time= instead
    /home/pc/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/selenium-webdriver-3.0.0/lib/selenium/webdriver/firefox.rb:58:in `driver_path': Unable to find Mozilla geckodriver. Please download the server from https://github.com/mozilla/geckodriver/releases and place it somewhere on your PATH. More info at https://developer.mozilla.org/en-US/docs/Mozilla/QA/Marionette/WebDriver. (Selenium::WebDriver::Error::WebDriverError)
    from /home/pc/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/selenium-webdriver-3.0.0/lib/selenium/webdriver/firefox/w3c_bridge.rb:30:in `initialize'
    from /home/pc/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/selenium-webdriver-3.0.0/lib/selenium/webdriver/common/driver.rb:49:in `new'
    from /home/pc/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/selenium-webdriver-3.0.0/lib/selenium/webdriver/common/driver.rb:49:in `for'
    from /home/pc/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/selenium-webdriver-3.0.0/lib/selenium/webdriver.rb:82:in `for'
    from /home/pc/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/capybara-2.10.1/lib/capybara/selenium/driver.rb:20:in `browser'
    from /home/pc/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/capybara-2.10.1/lib/capybara/selenium/driver.rb:53:in `visit'
    from /home/pc/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/capybara-2.10.1/lib/capybara/session.rb:240:in `visit'
    from /home/pc/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/capybara-2.10.1/lib/capybara/dsl.rb:52:in `block (2 levels) in <module:DSL>'
    from login.rb:15:in `login'
    from login.rb:26:in `<main>'
    ```
    また、
    ```
    $ ls /home/pc/.rbenv/shims
    erb gem irb nokogiri rackup rake rdoc ri ruby selenium
    ```
    となっていました。
    どうやらログアウト(?)するとやり直さないといけないようです。
    これが環境変数というやつでしょうか?
    勉強になります。

    キャンセル

  • 2016/11/04 21:35 編集

    とりあえず動いたみたいですね :)。おめでとうございます。

    > これが環境変数というやつでしょうか?

    うーん、geckodriver が消えちゃうのは変ですね。


    チョッと真っ当に設定しましょうか。

    1. mkdir ~/bin/
    2. cp geckodriver ~/bin/
    3. vi .bash_profile
    ↑ PATH 変数を PATH=$PATH:/.../:$HOME/bin と、末尾に :$HOME/bin を追加

    これで、一度、ログアウトしても大丈夫になると思います。

    キャンセル

  • 2016/11/06 18:36

    度々すみません。
    1. mkdir ~/bin/
    2. cp geckodriver ~/bin/
    は出来ました。

    3. vi .bash_profile
    ↑ PATH 変数を PATH=$PATH:/.../:$HOME/bin と、末尾に :$HOME/bin を追加
    なのですが、どこのディレクトリで実行すればいいでしょうか?
    ~/bin/でなく、ホームディレクトリでいいでしょうか?
    自分には環境設定やPATHの概念がよく分からず、困惑しております。
    2. が終わった際に
    $ cd
    と打って、ホームディレクトリに移動して実行しました。
    また、↑ PATH 変数を PATH=$PATH:/.../:$HOME/bin と、末尾に :$HOME/bin を追加
    とのことですが、
    ホームディレクトリに.bash_profileはなかったので、初めて作成するという形になったため、
    1 PATH=$PATH:/.../:$HOME/bin 2 :$HOME/bin
    3
    の3行でいいでしょうか?


    それらを終えた後、

    $ ruby login.rb
    と実行しようとした結果、
    firefoxは立ち上がりませんでした。
    DEPRECATED: #default_wait_time= is deprecated, please use #default_max_wait_time= instead
    /home/pc/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/selenium-webdriver-3.0.0/lib/selenium/webdriver/firefox.rb:58:in `driver_path': Unable to find Mozilla geckodriver. Please download the server from https://github.com/mozilla/geckodriver/releases and place it somewhere on your PATH. More info at https://developer.mozilla.org/en-US/docs/Mozilla/QA/Marionette/WebDriver. (Selenium::WebDriver::Error::WebDriverError)
    from /home/pc/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/selenium-webdriver-3.0.0/lib/selenium/webdriver/firefox/w3c_bridge.rb:30:in `initialize'
    from /home/pc/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/selenium-webdriver-3.0.0/lib/selenium/webdriver/common/driver.rb:49:in `new'
    from /home/pc/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/selenium-webdriver-3.0.0/lib/selenium/webdriver/common/driver.rb:49:in `for'
    from /home/pc/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/selenium-webdriver-3.0.0/lib/selenium/webdriver.rb:82:in `for'
    from /home/pc/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/capybara-2.10.1/lib/capybara/selenium/driver.rb:20:in `browser'
    from /home/pc/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/capybara-2.10.1/lib/capybara/selenium/driver.rb:53:in `visit'
    from /home/pc/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/capybara-2.10.1/lib/capybara/session.rb:240:in `visit'
    from /home/pc/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/capybara-2.10.1/lib/capybara/dsl.rb:52:in `block (2 levels) in <module:DSL>'
    from login.rb:15:in `login'
    from login.rb:26:in `<main>'
    以前の、geckodriverをPATH=/usr/local/sbin:/usr/local/heroku/bin:/Users/BSDmad/.rbenv/shims:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
    のいずれかのディレクトリにコピーする前と同じようなエラーがでました。

    geckodriverがコピー先のディレクトリから消えてしまう理由なんだと思われますか?

    また、前回のご回答の中の
    >set | grep PATH

    >PATH=/usr/local/sbin:/usr/local/heroku/bin:/Users/BSDmad/.rbenv/shims:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
    のように PATH 環境変数に設定されているパスが表示されると思います。
    >表示されたいずれかのディレクトリに geckodriver をコピー

    を行った理由(なぜそのディレクトリにgeckodriverをコピーすればプログラムが動作するということが分かった理由)も解説していただければ幸いです。
    何卒よろしくおねがいします。

    キャンセル

  • 2016/11/06 18:48

    環境変数、パス(PATH)については http://qiita.com/soarflat/items/d5015bec37f8a8254380 など、色々な記事が既にネットにありますので、『bash 環境変数 パス』などで検索してみてください。

    > geckodriverがコピー先のディレクトリから消えてしまう理由なんだと思われますか?

    これは分からないです。Ubuntu はどこにインストールされたものでしょうか?
    なお /home/pc/bin/ 下にコピーしたファイルは消えなかった、ということで良いですか?

    また自分のホームディレクトリ(cd エンターして移動したディレクトリ)に移動し、ls -al .bash* してみてください。.bash_profile は無かったようですが、.bashrc など、他のファイルも無いでしょうか? bash じゃないのかな…

    いずれにしても説明が難しかったようでスイマセン。.bash_profile には

    PATH=$PATH:/home/pc/bin

    の一行だけ、書いてみて下さい。


    キャンセル

  • 2016/11/06 19:32

    度々すみません。
    環境はbashを使用しています。
    aliasの設定などはbashrcに設定しているのでbashで間違いないです。書き忘れていました。

    また、
    1. mkdir ~/bin/
    2. cp geckodriver ~/bin/

    /home/pc/bin/
    にコピーした
    geckodriverは
    $ exit
    しても消えませんでした。

    .bashrcの末尾に
    PATH=$PATH:/home/pc/bin
    と追記し、
    ruby login.rb
    と実行したところ、
    エラー文は変わりませんでした。

    >Ubuntu はどこにインストールされたものでしょうか?
    LiveCDからHDDにインストールしています(これで回答になっているでしょうか…)。

    キャンセル

  • 2016/11/06 19:37

    あー、すいません。『export PATH=$PATH:/home/pc/bin』と、頭に 『export』を追加してもらえますか? その後、一度ログアウトし、再度ログインしてください。

    which geckodriver と叩いて、/home/pc/bin/geckodriver と表示されますか? されれば OK、されなければ未だ PATH が適応されてない、ということになります。

    キャンセル

  • 2016/11/06 20:15

    $ export PATH=$PATH:/home/pc/bin
    $ exit
    端末起動
    $ which geckodriver
    $
    でした。
    .bashrcの
    PATH=$PATH:/home/pc/bin
    の頭に
    exportをつけても
    つけなくても結果は何も表示されませんでした。

    キャンセル

  • 2016/11/06 20:57

    /home/pc/bin/geckodriver で起動できますか?
    また、再ログイン後に set | grep PATH で、/home/pc/bin/ は含まれていますか?

    キャンセル

  • 2016/11/07 11:31

    ご回答いただきましてありがとうございます。
    解決しました。
    きちんと動作しました。
    $ ruby login.rb
    はきちんと動作しました。
    $ exit
    と打って、再度端末を起動して、
    $ ruby login.rb
    と実行した時も同様でした。

    原因は私側にありました。
    ユーザ名の置換をしていたのにもかかわらず、
    ユーザ名の置換を元に戻し忘れるといったものでした。

    投稿する際に、ユーザ名をそのまま投稿するのはアレと思い、
    (ユーザ名)をpcに置換していたのを忘れていました。
    なので、.bashrcの末尾に追記した
    PATH=$PATH:/home/pc/bin

    PATH=$PATH:/home/(ユーザ名)/bin
    に戻したところ、
    $ ruby login.rb
    でうまく動作しました。

    $ echo $USER
    では
    pcとは表示されません。

    存在しないユーザ名でパスを通していたので動く訳ないですよね...。
    質問する側がである私がこのような重大なミスをしていてはお話になりません。
    大変申し訳ございませんでした。

    また、
    .bashrcの末尾に
    PATH=$PATH:/home/$USER/bin
    と書き換えて実行した際は
    PATH=$PATH:/home/(ユーザ名)/bin
    に直した時と同様にきちんと動作しました。
    set | grep PATH
    を実行した際は、/home/(ユーザ名)/bin/
    が表示されました。

    そして、
    geckodriverがコピー先のディレクトリ
    /home/(ユーザ名)/.rbenv/shims
    から消えてしまう理由
    ですが、
    やっていてふと思いだしたことがあります。
    以前私が、capybaraやanemone等を導入した際、
    $ rbenv exec gem install
    でcapybaraやanemone等を導入していました。
    capybaraやanemone等は
    /home/(ユーザ名)/.rbenv/shims
    の中にありました。
    $ rbenv exec gem install
    というのは
    /home/(ユーザ名)/.rbenv/shims
    にコピーして、PATHを通すというものなのではないかと
    思いました。
    (調べたら出てきそうです...。調べていた際にもう読んでいたかもしれませんが、その時の私ではまだ到底理解できていなかったです。大前提を知らなかったためです...いま実践してみてやっと分かったような気がします。)
    $ rbenv exec gem install geckodriver
    でいけるかもしれないと思いました。

    今回の件で、環境設定、環境変数、PATHの通し方の概要を身をもって実感いたしました。
    大変勉強になりました。
    お騒がせしてしまい、大変申し訳ありませんでした。
    心より謝罪いたします。
    ご親切に手とり足取り教えていただきまして本当にありがとうございました。
    お手を煩わせてしまい、大変申し訳ございませんでした。
    教えて頂いたURL参考になりました。
    なんとお礼及び謝罪を申し上げたら良いものか...。
    長文失礼致しました。

    キャンセル

  • 2016/11/07 11:37

    訳も分からないクセして環境設定などをいじくり回してしまっていたようなので、
    別のUbuntu環境のパソコンでもやってみたいと思います。
    貴重なお時間を奪ってしまい、大変申し訳ありませんでした。
    心より謝罪及びお礼申し上げます。

    キャンセル

  • 2016/11/07 20:27

    おお、上手く行ってよかったですね! 私も説明がよろしくない所が多々ありましたので、お互い様ということで :)。

    なお、PATH 環境変数への設定はわかりやすくするつもりで /home/pc/bin を追記するように書いたのですが、実際には $HOME/bin と書くのが一般的です。今考えればこちらを先に教えるべきでした…

    コレに懲りず、また色々と質問してみて下さい。お役に立てるようであれば、また回答させて頂きます。

    キャンセル

  • 2016/11/08 16:14

    ご親切にご教授いただきましてありがとうございました!
    勉強になりました!
    本当に助かりました!

    キャンセル

+2

Unable to find Mozilla geckodriver.
Please download the server from https://github.com/mozilla/geckodriver/releases and place it somewhere on your PATH.
More info at https://developer.mozilla.org/en-US/docs/Mozilla/QA/Marionette/WebDriver.

と出てますが、これは済という事でよろしいでしょうか?

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/11/04 17:01

    hana-da 様
    度々ご回答いただき、恐縮です。

    済ではないです。

    $ ruby login.rb を実行したときにエラーが出て、
    firefoxにgeckodriverを入れてくださいとの旨の内容だと思うのですが、
    どのようにすればいいのか分からず質問いたしました。

    キャンセル

  • 2016/11/04 17:55

    せめてどういう対応をとったのかぐらい書かないと「丸投げ」が付けられてしまいそうな気がします。今の質問内容は「エラーが出ました何とかしてください」ぐらいの情報量しかありません。

    キャンセル

同じタグがついた質問を見る

  • Ruby

    9225questions

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

  • Linux

    4373questions

    Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

  • Ubuntu

    1747questions

    Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。