3

まず最初に、私はこれについて少し新しいことを指摘したいと思います。したがって、この投稿が理解できることを願っています。

Gems:
  rails (2.3.11
  nokogiri (1.5.4)
  cucumber (1.1.9)
  capybara (1.1.2)
  copybara-webkit (0.12.1)

現在、RailsWebアプリケーションの統合テストにキュウリを使用しようとしているプロジェクトを行っています。Webアプリケーションはjavascriptとajaxに大きく依存しているため、これを処理できるcapybaraドライバーを使用したいと思います。(私は:rake_testがそうではないことに気づきました)しかし、時間がかかるので、ブラウザウィンドウを常にポップアップさせたくありません。そこで、capybara-webkitを選択しました。しかし、ドライバーを変更したので、env.rbでcapybaraのjavascriptドライバーを設定すると、常に迷惑なエラーが発生します。

    undefined method `invalid_element_errors' for #<Capybara::Driver::Webkit:0x9c50bf8> (NoMethodError)
  ./features/step_definitions/some_steps.rb:37

その行の私のコード:

    >> 35  select("something", :from => find("select[class='class_name']")[:id])
    >> 36  click_link('javascript_link')
    >> 37  click_link('another_javascript_link')

IDが動的であるため、35行目の検索を使用しています。この時点より上に既知のIDを持つ別の検索を追加すると、代わりにその行で同じエラーがスローされるため、問題は実際にはfindメソッドにあるようです。

capybara-webkitを使用できるように、この問題を取り除くにはどうすればよいですか?これは実際のドライバーの問題であり、修正はgithubマスターブランチで利用可能であり、どういうわけかそこに宝石をリンクできるとどこかで聞いたことがありますか?もしそうなら、誰かがそれを行う方法を説明できますか?

4

1 に答える 1

2

私もこの問題に苦しんでいます。これはcapybara-webkitのバグです。0.12.1バージョンにはinvalid_element_errorsメソッドがありません。

数か月前に修正を伴うプルリクエストがありましたが、マージされませんでした(https://github.com/thoughtbot/capybara-webkit/pull/288)。これでマスターブランチにメソッドが追加されたので、gitリポジトリを使用する必要があります。

gem 'capybara-webkit', :git => 'git://github.com/thoughtbot/capybara-webkit'

それを試してみて、それがあなたのために働くかどうか見てください:)。

于 2012-06-20T10:50:39.543 に答える