問題タブ [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 - Rspec+Capybara オプションで JS ドライバーを変更
CI に poltergeist/phantomjs を使用していますが、必要に応じて JS ドライバーを selenium に変更して、テストをローカルで実行できるようにしたいと考えています。理想的には、このデフォルトのポルターガイストのコマンド ライン フラグが必要ですが、rspec --driver=selenium (または同様のもの) を実行できるようにする必要があります。
何か案は?
cucumber - カピバラ/ポルターガイスト要素の子要素を一覧表示する
私は周りを検索しましたが、これを行う方法が見つかりません。
EmberJS/Rails アプリのキュウリ機能で Poltergeist ドライバーを使用して Capybara テストを実行しています。ヘッドレス vagrant インスタンス内で実行しているため、page.driver.debug を使用できません。トラブルシューティングは利用できませんが、スクリーンショットは機能し、Chrome 開発ツールは問題のページを検査して正しい要素を示します。
失敗するキュウリのシナリオがありますが、それは検索が機能していないためです。私のテストは次のようになります。
問題の要素が見つかりません。DOM の関連セクションは次のとおりです。
binding.pry を追加すると、次のようになります。
私にこの応答を与える:
この:
私にこの応答を与える:
しかし、完全な発見:
私にこの応答を与える:
これは親/兄弟の問題だと思いますが、トラブルシューティングはできません。だから私はいくつかの質問があると思います:
- デバッグのために、すべての子要素を一覧表示するポルターガイスト ドライバーはありますか?
- xpath セレクターに何か問題がありますか?
..
返されているという事実はCapybara::Element tag="div"
、私が正しい親要素を持っていると思います (そして、私が言ったように、他の同様のテストの他のページでも機能します) が、それがどの要素であるかを確認する方法がありません. xpath を取得する方法や、要素を識別するのに役立つその他のものを見つけることができません。
ruby-on-rails - 別のサーバーで失敗する Capybara 仕様
最近、mi CI サーバー (Teamcity) を、同じ構成でかなり似た OS を持つ別の強力なマシンに移動しました。
それ以来、私の統合仕様のいくつかが失敗し始めました。私のセットアップはかなり標準的で、Rails 3 + カピバラ + ポルターガイスト + ファントム js です。
失敗は決定論的であり、常に発生し、DOM で欠落しているノードに常に関連しています。また、同様の設定の異なるプロジェクト間で失敗が発生するため、プロジェクトの構成に関連するものではありません。これは、カピバラ 1.x とカピバラ 2 の両方で発生しています。
これは最も単純な失敗仕様です。この仕様は JavaScript を必要とせずに実行されるため、この問題はラックのみの仕様にも存在することに注意してください。
私が試したこと:
- 異なるマシンで仕様を実行すると、すべての開発マシンとステージング サーバーで動作します。CI環境外でもCIマシンでしか障害を再現できません(つまり、コマンドラインからスペックを実行することによって)
Capybara.default_wait_time
ばかげたことに増加20
page.should have_content
列の前に残忍な睡眠を試みた- RVM、ruby、capybara、poltergeist を CI マシンの最新バージョンにアップグレードします。
- teamcity を最新バージョンにアップグレードする
私が見つけた最も奇妙なことはsave_page
、失敗した行の直前に呼び出しを追加したときです。自分のマシンで仕様を実行し、次にサーバーが失敗している CI でこれら 2 つのファイルを比較すると、結果は次のようになります。
どちらが仕様を失敗させる 2 つの欠落部分であり、フォームが送信され、コントローラー アクションが正常に実行されますが、dom の欠落部分が 2 つあります。それはどのように可能ですか?そして、なぜこれが1台のマシンでのみ起こっているのですか?
記録のために、これら 2 つの DOM は、標準の Rails ツールで追加されます。
もう1つは分析宝石を使用
ruby-on-rails - Rails アプリケーションで PhantomJS と Poltergeist を接続できない
Poltergeist github ページの指示に従いましたが、PhantomJS のバージョンが間違っているというエラーが表示され続けます。
具体的には、次のように述べています。
今、phantomjs v1.8.1 (およびそれ以降の v1.9.2) をダウンロードしたので、バージョンは正しいです。これは本当に私を夢中にさせています。私はUbuntu 13.04を使用していますが、それが理由だとは思いません。
エラーをグーグルで検索しても、何も返されません。
何か案は?
ruby-on-rails - binding.pry 使用時にタイムアウトを回避するように phantomjs に指示する方法
ある時点で、皆さんがそれを REPL 駆動型開発と呼んでいるのかどうかはわかりませんが、binding.pry
テストに呼び出しを挿入してランタイムの内容を調べていることに気づきました。を使用するドライバーpoltergeist
として選択したため、Cucumber テストを実行している場合を除いて、これはかなりうまく機能します。REPL を起動することはできますが、しばらくすると強制終了され、 からタイムアウト エラーが発生します。これはおそらく以前に尋ねられたことがありますが、答えが見つかりませんでした。手がかり?capybara
phantomjs
phantomjs
pry-remote
capybara - カピバラのポルターガイストでプッシャーをテストする
Poltergeist でプッシャー アプリをテストしようとしています。これまでのところ、私はcapybara-webkit
. 仕様でこれを示す最小限のサンプルアプリを作成しました。仕様は で合格しますが、 で失敗します。capybara-webkit
Poltergeist
何か不足していますか、それともこのタイプのプッシャー (WebSocket) テストは現在 Poltergeist では実行できませんか?
前もって感謝します。