3

javascriptコードの受け入れテストを実行しようとしています。ただし、CapybaraをSeleniumで使用しようとすると、次のようになりました。

>> Thin web server (v1.3.1 codename Triple Espresso)
>> Maximum connections set to 1024
>> Listening on 0.0.0.0:1234, CTRL+C to stop
FF>> Thin web server (v1.3.1 codename Triple Espresso)
>> Maximum connections set to 1024
>> Listening on 0.0.0.0:1234, CTRL+C to stop
F

Failures:

  1) end to end acceptance test shows that x wins when it does
     Failure/Error: @application.start
     Selenium::WebDriver::Error::WebDriverError:
       Unable to find the chromedriver executable. Please download the server from http://code.google.com/p/chromedriver/downloads/list and place it somewhere on your PATH. More info at http://code.google.com/p/selenium/wiki/ChromeDriver.>> Thin web server (v1.3.1 codename Triple Espresso)
     # ./spec/acceptance/application_driver.rb:24:in `start'
     # ./spec/acceptance/end_to_end.rb:6:in `block (2 levels) in <top (required)>'

以下のコードは、ドライバーを起動するためのものです。http://code.google.com/p/chromedriver/downloads/listから適切なファイルをダウンロードし、PATH = $ PATH:/ directory / where / chromedriver/existsを実行してPATHをエクスポートすることでパスに配置しました。実行可能にしましたが、それでもエラーが発生しました。足りないものはありますか?

Capybara.register_driver :chrome do |app|
  Capybara::Selenium::Driver.new(app, :browser => :chrome)
end

Capybara.default_driver = :chrome

class TicTacToeApplicationDriver
  include Capybara::DSL
  include Capybara::RSpecMatchers

  APPLICATION_PORT = 1234

  def initialize
    @application_server = ApplicationServer.new
  end

  def start
    @application_server.start
    visit "http://localhost:#{APPLICATION_PORT}/index.html"
  end
4

2 に答える 2

10

chromedriver-helper gem をインストールするとうまくいきました。

追加

gem 'chromedriver-helper'

Gemfile のテスト グループに追加します。

于 2013-05-13T10:02:05.973 に答える
3

capyberaはわかりませんが、このエラーについては2つのことを確認できます

  1. chromedriver.exe(またはLinuxの場合はchromedriver)へのファイル名を含むフルパスを指定していることを確認してください。Windowsの場合は、.exeも指定する必要があります。

  2. path変数を更新するのではなく、remotewebdriverを使用している場合は、Seleniumサーバーの起動中にこのパスを指定してみてください。好き

java -jar selenium.jar -Dwebdriver.chrome.driver = fullpathtoexefileincludefilename

于 2012-05-18T14:42:56.197 に答える