問題タブ [capybara-webkit]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby - ruby スクリプトがハングする理由を確認する
スペックがハングすることがあり、対応する ruby プロセスを強制終了する必要があります。capybara と webkit ドライバーで書かれた統合仕様を実行するとよくあることです。
特定の ruby のプロセスを調べて、ハングする場所を確認することはできますか? どのメソッド、操作、ファイル、行番号など。
rspec - capybara-webkit はもうテストを実行しません
Capybara (0.13.0) と Rspec (2.12.0) を更新したところ、私の capybara-webkit テストは約 1/5 の時間しか機能しません。
「動作しない」とは、テストの内容がまったく実行されていないことを意味します。そのテストでフリーズするだけです。何もしていないようです (Ruby プロセスは 0.1% の CPU しか使用していません)。
また、私のjs: true
テストのいくつかは 100% の確率で動作するようです。
Firefox でテストを実行すると、すべてが機能します。
他の誰かがこの問題を抱えていますか?それをデバッグする方法についてのアイデアはありますか?
ruby-on-rails - Rspec カピバラ仕様は、「rake 仕様」経由で呼び出すと失敗しますが、「rspec 仕様」経由で呼び出すと成功します
これらの質問に対する答えを試しました: 1、2。最初のものは、キャッシュの問題である可能性があることを示しています (および実行を示唆していますrake tmp:clear
)。2 番目のものは、rake が「開発」で実行されるため、強制ENV['RAILS_ENV'] = 'test'
することを提案しています。spec_helper.rb
また、vcr gem を完全に削除しようとしましたが、これも効果がありません。
このコメントは、ダーティな環境が原因で問題がどのように発生するかについての詳細を示します (rake は「開発」で開始されますが、rspec は「テスト」で実行されるため)。
問題の仕様は capybara と capybara-webkit を使用しています。経由bundle exec rake spec:requests
で実行すると成功しますが、 経由でスイートで実行すると失敗しますbundle exec rake
。カピバラが見る html は両方の場合で異なり、スイートで実行すると要素は表示されません#movie_imdb_id
。
私は gem バージョンrspec (2.11.0)
、capybara (1.1.3)
、およびを使用してcapybara-webkit (0.12.1)
います。
Rspec メッセージ:
spec_helper.rb:
仕様/要求/imdb_credits_spec.rb:
ajax - Capybara で AJAX リクエストが完了する前にメッセージ コンテンツの読み込みをテストする
Capybara がコンテンツをテストする前に AJAX リクエストの完了を待たないという質問と回答がたくさんありますが、逆のことをする必要があります。AJAX リクエストが完了する前に読み込みメッセージが存在することをテストしたいのです。
RSpecのCapybaraでAJAXリクエストが行われる前に、コンテンツが表示されていることを確認するにはどうすればよいですか?
ありがとう!
rspec - Capybara-webkitで空白のページが表示されるのに、標準(非JS)ドライバーでは表示されないのはなぜですか
私のRspec+Capybara統合テストは、Capybara-Webkitを使用してJavascriptに依存するインターフェイス要素との対話を開始するまでは正常に機能していました。
Capybara-Webkitを使おうとすると、以下の空白ページが表示されsave_and_open_line
ます。なんで?
/spec/features/area_spec.rb:
/spec/spec_helper.rb:
Capybara.current_driver = :webkit
から削除するとarea_spec.rb
(ただし、Webkit関連のコードはそのままにしておきますspec_helper.rb
)、によって生成されたページsave_and_open_page
は空ではありませんが、Rspecコマンドラインで次のエラーが発生します。
最初:js => :true
はbeforeに追加しようとしましたblock ... do
が、Rspecは構文を拒否し続けました。ブロックでカバーされる:js => true
最初のページに追加すると、で空白のページが表示されますが、Rspecコマンドラインでのエラーは次のように変わります。it ... do block
before ... do
save_and_open_page
ファイルCapybara.javascript_driver = :webkit
内のレベルをブロック外に移動すると、同じエラーが発生します。spec_helper.rb
Rspec.configure do
ブロックからすべての行を切り取り、それをカバーする予定before ... do
の最初の行に貼り付けると、同じエラーが発生します。it ... do block
Webkit関連のすべてのコードを設定および削除すると、Javascriptドライバーが必要なのconfig.use_transactional_fixtures = true
場合を除いて、仕様は機能します。page.find('#nav_reports').trigger(:mouseover)
更新page.current_path.should == report_path(@report)
:の前に挿入しsave_and_open_page
、Capybara-Webkitに関する何かが私visit report_path(@report)
の動作を妨げていることを発見しました。(Capybara-WebkitでJavascriptに依存するインターフェイス要素をテストしない場合は正常に機能します。)エラーコードは次のとおりです。
さらなる更新:Capybara-Webkitを使用すると、訪問する直前にステートメントを行のすぐ上@report
に移動しても、Rspecがオブジェクトを見つけるのに問題があることがわかりました。完全なテストログは以下のとおりです。@report = Report.create(...)
report_path(@report)
ruby-on-rails - レール上のrspec-capybaraを使用して、イメージタグにイメージが実際に存在するかどうかをテストする
送信するメールには画像が含まれており、実際に画像が読み込まれたことを確認したいと考えています。したがって、Mailer View Spec のスタイルでは、Capybara RSpec Matcher が必要です。これは、この画像が実際に画像としてレンダリングされているかどうか (または、alt タグが見つからなかったために単に alt タグがあるかどうか) を教えてくれます。いくつかのオプションがあるかどうか知っていますか?
cucumber - cucumber で同じブラウザ ウィンドウを使用する
私の機能ファイルには、次のようなものがあります。
cucumber が 2 番目のシナリオを実行すると、バックグラウンドが再実行されます。
私の質問は、前のシナリオと同じブラウザー セッション/状態を使用するように Cucumber に指示することは可能ですか? これにより、テストの実行時間を節約できます。
testing - Capybara Webkit を使用すると Element not found エラーが発生するが、テストは非ヘッドレス モードで正常に実行される
Capybara-webkit を使用して、ヘッドレス モードで簡単な Google 検索テストを実行しようとしています。
env.rb ファイルのようにドライバーを設定しました。
また、機能ファイルには、入力を検索し、結果に期待される出力が含まれているかどうかを検証する簡単なシナリオの概要が含まれています。
ステップ定義では、Googleページにアクセスしてテキストボックスに入力し、検索ボタンをクリックします。
これらのテストを実行すると、次のエラーが表示されます。
フィールド "gbqfq" が見つかりません (Capybara::ElementNotFound)
ただし、ドライバーをセレンに変更すると、次のようになります。
次に、テストが実行され、すべてのステップがパスします。
ヘッドレス モードでは、要素は別の方法で検出されますか? 私のアプローチは間違っていますか?ブラウザー モード (Firefox インスタンスを開く) で正常に動作するのに、ヘッドレス モードで要素が見つからない理由を理解できません。
私はこの分野の初心者なので、どんな助けでも大歓迎です。前もって感謝します。
ruby-on-rails - RSpec/Capybaraがエラーが発生した場所を表示しないのはなぜですか
テストにWebkitでCapybaraを使用していますが、何らかの理由でテストが失敗するとエラーが表示されますが、コード内で実際に発生した場所は表示されません。
使用save_and_open_page
すると、エラーが発生した場所に関する情報なしで、エラーが表示されるだけです。
内部サーバーエラー
127.0.0.1:60324の#WEBrick / 1.3.1(Ruby / 1.9.3 / 2012-04-20)の未定義のメソッド `client_id'
私が期待しているのは、エラーが発生した行番号と関数です。
app / controllers / invoices_controller.rb:30:in `show '
Googleでこれに関連するものを見つけることができないようです。私はおそらく間違った命名法を使用しています。誰かがこれを修正する方法を知っていますか?