問題タブ [poltergeist]
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-on-rails - Capybara/Poltergeist 使用時、pry でアプリケーションスレッドにアクセスする方法
rails と emberjs アプリケーションでテストを実行しており、テストで :js => true を設定しています。仕様に binding.pry をドロップすると、REPL が正常に開きますが、アプリに binding.pry をドロップすると、コンソールに REPL が表示されますが、仕様は続行します。これは、ドライバーとしてポルターガイストを使用して、カピバラが 1 つのスレッドで仕様を実行し、別のスレッドでアプリケーションを実行するために発生すると私は信じています。アプリケーション コードで binding.pry を使用して REPL を開き、アプリと仕様の両方を一時停止できるように設定する方法はありますか?
以下は、問題なく動作する binding.pry ステートメントと取り残されるステートメントの例です。
作品:
employee_signs_in_spec.rb
取り残される:
sessions_controller.rb
ruby - Poltergeist を使用しているときに要素の HTML を取得するにはどうすればよいですか?
Poltergeist ドライバーで Capybara を使用しています。私の質問は: ノードの HTML (文字列) を取得する方法は?
RackTest ドライバーを使用すると、次のように取得できることを読みました。
#native
ただし、ノードで Poltergeist を呼び出すとCapybara::Poltergeist::Node
、ネイティブの Nokogiri 要素ではなく、 が返されます。そして、 を#native
もう一度呼び出すとCapybara::Poltergeist::Node
、同じCapybara::Poltergeist::Node
ことが返されます (つまり、 が返されますself
)。
探しているものを見つけるために、ページ全体から HTML を見なければならないのは少しイライラするようになりました:P
javascript - Chrome で機能する正規表現が Poltergeist/PhantomJS で機能しないのはなぜですか?
リンクを解析するための JavaScript に問題があります (必要に応じてビデオ プレーヤーを埋め込むため)。Chrome で手動でテストするときは問題なく動作しますが、別のブラウザーで自動テスト スイートを実行するとうまくいきません。
元の ( urlVimeo0
) は Chrome で動作しますが、これをポルターガイストを使用したテスト スイートの一部として実行すると、数字と一致するビットの後に何かがあると何も動作しません。どちらも Webkit ベースなので、ドル/スラッシュが原因で失敗する理由がわかりません。
ruby-on-rails - Cucumber を使用してドラッグ アンド ドロップ ファイルのアップロードをテストするにはどうすればよいですか?
ドラッグ アンド ドロップのファイルと画像のアップロードを受け入れる HTML エディターがあります。これがCucumberであることをテストする必要があります(CapybaraとPoltergeistを使用)が、その方法については何も見つかりません。Capybara はドラッグ アンド ドロップをサポートしていることがわかりましたが、既存のページ要素を見つけてドラッグすることしか言及されていません。まだ存在しないブラウザにファイルを送信する必要があります。
エディターには contenteditable div があり、ファイルを取得して JS 経由で S3 に送信します。
ruby-on-rails - カピバラのポルターガイストのクリックが効かない
カピバラポルターガイストでリンクhrefをクリックする方法がわかりません。テストでこのようなサンプルコードがあります
私のhtmlには、このようなサンプルがあります
カピバラのポルターガイストでリンクをクリックする方法は? 私はすでに「click_link」、「click_button」などを試していますが、まだ機能していません
poltergeist - Poltergeist を使用すると、rspec の実行ごとに Phantom JS インスタンスが終了しません。
rspec によって実行されるすべてのポルターガイスト テストで、次を使用して新しいセッションを作成すると:
Capybara.session_name="some_session_name"
ファントム js インスタンスがサブプロセスとして開始され、テストが終了するまで終了しないため、ビルド サーバーで OOM が発生します。
Poltergeist の readme で説明されているように、これは driver.quit の呼び出しに失敗したためだと思います。
いくつかのカピバラセッションを手動で実行する場合は、セッションが不要になったときに session.driver.quit を呼び出したことを確認してください。これを忘れると、メモリ リークが発生し、システムのリソースが予想よりも早く使い果たされる可能性があります。
ただし、テストpage.driver.quit
のブロックを呼び出します。after
以下は私のアフターブロックコードです。 $adhoc_sessions
は、 を設定するたびに入力するグローバル変数Capybara.session_name
で、値は に設定された値と一致しますCapybara.session_name
。
ここでもっとうまくできることについて何か提案はありますか?クリーンアップコマンドの呼び出しに失敗していますか?