問題タブ [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 で Capybara から実行すると webkit_server が定期的にハングする
URL にアクセスすると、ローカルの Xvfb 画面に接続されたヘッドレスで実行されている Capybara および capybara-webkit を使用した webkit_server のインスタンスがハングするという問題が発生しています。数分間、異なる URL に繰り返しアクセスし、ファインダーを実行した後に発生するようです。(テスト用ではなく、バニラRubyの画面スクレイピングアプリケーションにカピバラを使用しています。)
ハングしてもサイトにアクセスできることを確認しました (たとえば、コマンド ラインで curl または wget を使用)。また、訪問と後続のファインダーを呼び出す Ruby コードを Timeout ブロックでラップしてみました。これにより、60 秒待ってから新しい URL が訪問されますが、最初にこれが発生した後はすべての visit() 試行が失敗します。この問題を解決する唯一の方法は、Capybara/capybara-webkit を呼び出す Ruby プロセスと webkit_server プロセスの両方を強制終了して再起動することです。
webkit_server プロセスをトレースすると、次のような出力が繰り返し表示されます。
それを呼び出す Ruby プロセスをトレースすると、read() でハングします。
Ruby コードが Capybara の visit() メソッドでハングしていることはわかっています。
これをトラブルシューティングまたは修正するために私ができることについてのアイデアをいただければ幸いです。この問題は、webkit_server が URL にアクセスする必要があるリソースに関係していると思いますが、次に何を試せばよいかわかりません。
ありがとう!
ruby-on-rails - JS が機能しない RSpec+Capybara リクエスト仕様
Javascript を使用すると、リクエスト スペックが機能しません。私の仕様は、Javascript なしで実行するとパスします (ページは JS の有無にかかわらず動作するように構築されています)。
具体的には、 のようなアサーションを行うと仕様が失敗しPost.should have(1).record
ます。Capybara は DB からレコードを取得しないだけで、データベースは実行間でクリーンアップされません。
トランザクションフィクスチャを無効にして DatabaseCleaner を使用してみました-これに対する一般的なアプローチだと思います。サイコロはありません。
また、DatabaseCleaner を使用せずに実行し、トランザクション フィクスチャを使用し、AR にスレッド間の同じ接続を強制的に共有させようとしました ( José Valim が説明したパッチ)。繰り返しますが、サイコロはありません。
さらに、Capybara-webkit と Selenium を切り替えてみましたが、問題は解決しません。
問題を再現する基本的なPostスキャフォールドのみを含むサンプル アプリを 作成しました。他のシナリオの場合は rb です。
私は通常 Spork を使用しますが、両方の spec_helper.rb ファイルで無効にしました。これは、潜在的な障害点を排除するためです (「実際の」アプリとサンプル アプリの両方で)。
私は RVM を介して MRI 1.9.3 で OS X 10.7.3 を実行している Macbook Air で Pow を使用してローカルで開発しています。(1.9.2も試しました)。
私が理にかなっていることを願っています-ガイダンス/ヘルプ/ポインターは大歓迎です!
ruby-on-rails - Capybara Webkit を使用して Facebook に接続することは可能ですか?
Capybara-webkit ドライバーを使用して facebook 接続することは可能ですか?
Web で見られるすべての例は、現在 Capybara-webkit でサポートされていない"within_window" メソッド (この例: https://gist.github.com/1187574など) を使用しています。
ありがとうございました。
ruby-on-rails - capybara-webkit gem のインストールで問題が発生しましたか?再帰エラーですか?
capybara-webkit gem をインストールしようとすると、capybara-webkit gem が見つからないと表示されます。私はすでにqt4をインストールしています:
問題が何であるか考えていますか?
ruby - win7x86マシンへのcapybara-webkitのインストール中にエラーが発生しました
capybara-webkitのインストールに問題があります。gem install capybara-webkitを試してみると 、次のエラーが発生します
エラー:capybara-webkitのインストール中にエラーが発生しました:エラー:gemネイティブ拡張機能のビルドに失敗しました。C:/Ruby193/bin/ruby.exe extconf.rb
ruby v 1.9.3 p194、qt 4.7.4(4.8でも試してみました)
よろしくお願いします
rspec - Webkit でカピバラを実行すると、「失敗/エラー: バックトレースから一致する行が見つかりません」
このように実行すると、:focus => true
正常に動作します。
ただし、を削除し:focus => true
て完全なテストスイートを実行すると、そのテストでこのエラーが発生します。
:js => true
これは私がそれを使い始めた最初のテストなので、おそらく何かがあるようです. capybara-webkit は、1 つのテストを単独で実行すると、画面に一連の警告を出力します。
しかし、完全なスイートを実行すると、webkit からの警告が表示されないため、ほとんどロードされていないようです。
何か案は?ありがとうございます!
興味がある場合は、私の gemfile の関連部分を以下に示します。
ruby-on-rails - Rails 3.1.4、capybara-webkit 0.11.0、unicorn 4.3.1、および共有 DB ハックでハングするアクセプタンス スペックに関する問題
最近、アプリを Rails 3.0.12 から 3.1.4 にアップグレードしようとしましたが、JS テストに capybara-webkit を使用する多くの受け入れ仕様がハングしたり、さまざまなデータベース エラーを伴う一時的な障害を表示したりしています。
spec_helper.rb にはかなり一般的なハックがあり、spec 自体と capybara-webkit がスポーンするサーバーとの間で DB 接続を共有しています。これらのスレッド間で何らかのデッドロックや競合状態が発生している可能性があります。
グーグルで調べてみると、このハックでは Unicorn がうまく機能しないことがわかりました (以前はうまくいきましたが)。そのため、thin と WEBrick に順番に切り替えてみました。
Gemfile.lock は次のとおりです。
そして、spec_helper.rb は次のとおりです。
どんなアドバイスでも大歓迎です。
ruby-on-rails - JS での Capybara リクエスト仕様の問題 - モデルが見つかりません
JS リクエスト仕様に問題があります - モデル編集ページの基本的な訪問:
結果: 「ActiveRecord::RecordNotFound - ID=1 のドキュメントが見つかりませんでした」
奇妙なことに、標準のリクエスト仕様で動作します。Webkit ドライバーと Selenium ドライバーの両方を試しました。私の spec_helper は次のようになります (かなり標準的なはずです):
Rails 3.1.4、カピバラ、rspec などのテスト ライブラリのバージョン管理なし。
任意の入力をいただければ幸いです。ありがとう!
ruby-on-rails - 確認ボックスを無視しないように(または単にコンテンツをテストするように)capybara-webkitに指示する方法
だから私はシナリオを持っています:
リンクは単純です:
したがって、このコードでは、Chromeでリンクをクリックすると確認ダイアログが表示されますが、ページレンダリングを使用すると次のようになります。
スクリーンショットから、JavaScriptが評価されていないように見える(確認ダイアログが表示されていない)ことを確認できると思います。しかし、この仮定は間違っているかもしれませんが、私にはわかりません。
ご協力いただきありがとうございます。