問題タブ [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.

0 投票する
1 に答える
1465 参照

cucumber - Poltergeist や PhantomJS で JavaScript を使用した Cookie の設定が機能しない

で Cookie を設定する Web ページがありdocument.cookie = value、サーバー上での実行中に完全に機能します。

ただし、キュウリのテスト (Poltergeist/PhantomJS を使用) では、Cookie はページ間で保持されません。

テスト フローは次のとおりです。

  1. ページAが開きます
  2. ユーザーがボタンをクリックすると、JS がトリガーされて Cookie が設定されます
  3. ユーザーがページ B へのリンクをクリックする
  4. ページ B には、Cookie の値を反映するコンポーネントがあります

実行中のサーバーに対する実際のブラウザーでは問題ありません。

しかし、cucumber では、ステップ 4 の表示で、空の Cookie が表示されていることがわかります。

これを修正または調査する方法を知っている人はいますか?

0 投票する
1 に答える
263 参照

javascript - このカピバラはフレークをテストしますか?

capybara-webkit や pollergeist を使用して JavaScript の動作をテストする場合、次のようなテストをよく見かけます (または、残念ながら記述します)。

...チェックボックスをチェックすると、クイックリロード後にチェックできる状態を保存するAJAXリクエストが作成されます。

AJAX リクエストが 2 番目の発生時までに完了しない場合visit '/somewhere'、チェックボックスが間違った状態で読み込まれるため、そのテストはフレークすることが保証されているようです。

幸いなことに、このページには、チェックボックスのリクエストが完了している間に回転するスピナーもあるので、そのようにテストを修正できます。

ただし、私はまだ少し偏執的です。行が実行されたが、行の前のようにpage.checkスピナーを設定できなかった場合、その行はリクエストが開始される前に成功します。activepage.should have_css

チェックボックスによってトリガーされた JavaScript がactiveクラスを設定することを考えると、このテストがフレークしないことを保証できますか?

0 投票する
5 に答える
6797 参照

ruby-on-rails - Capybara、capybara-webkit、カスタム ファイル アップロード フォーム

次の HTML スタックを使用してカスタム アップロード フォームを作成しました。

ファイル フィールドはプロパティを使用して css を介して非表示にされdisplay: noneます。そのため、ユーザーがラベル (カスタム スタイル) をクリックすると、ファイル添付ダイアログが呼び出されます。

私の機能テストでは、入力フィールドが非表示になっているため、ファイルを添付できません。考えられる解決策をいくつか試しましたが、どちらも機能しません。

また

そして他の多く。いつも不明な位置エラーで要素をクリックできませんでした。入力フィールドに重なっているラベルを削除したら、それを表示して、合格したすべての仕様を実行します。したがって、ここでの問題は次の事実です。

  1. 入力ファイル フィールドにはdisplay: noneプロパティがあります (そのため、見つかりません)
  2. 隠しファイル欄に重なっているラベルがある(多分)

Capybara-webkit ドライバーを使用して Capybara にこのデリケートな状況を適切な方法で処理させる方法はありますか?

0 投票する
0 に答える
1921 参照

ruby - PhantomJS / Poltergeist を使用した Capybara: ドロップダウンから値を選択しても Ajax 呼び出しがトリガーされない

非営利目的で、スクレーパーを作成しようとしています。以前に PhantomJS を使用したことがありますが、通常は魅力的に機能します。ただし、次の問題に遭遇しました。

私がしたいこと:

残念ながら、選択したいオプションを選択できますが、その後何も起こりません。この動作を示すミニ スクリプトを作成しました。

変更前と変更後のスクリーンショットを比較すると、ドロップダウン メニューの数が変更されていることがわかりますが、テーブルの内容は変更されていません。また、ドロップダウン メニューが正しい位置に表示されず、代わりにスクリーンショットの左上隅に表示されます。

Selenium をデフォルトのドライバーとして使用すると動作しますが、私の経験でははるかに高速であるため、PhantomJS を使用したいと思います。

PhantomJS に Ajax 呼び出しをトリガーさせるにはどうすればよいですか?

PhantomJS 1.9.1、カピバラ 2.1.0、ポルターガイスト 1.3.0 を使用しています。

0 投票する
1 に答える
502 参照

ruby-on-rails-3.2 - Rails : Poltergeist は完全に機能する phantomjs を見つけられないようです

私のサイトの 1 つのコンテンツをポルターガイストとカピバラで定期的にチェックする小さな Rails アプリを作成しました。私のMacの開発では、すべてがうまく機能します。しかし、本番サーバーでテストすると、次のサーバーが得られます。

Capybara::Poltergeist::PhantomJSFailed (PhantomJS はゼロ以外の終了ステータス 127 を返しました。システムで phantomjs が正常に実行されることを確認してください。phantomjsこれは、Javascript REPL を提供するコマンドを実行するだけでテストできます。):

Phantomjs が動作します。コマンドラインからテストしました。さらに困惑しているのは、本番サーバーの Rails コンソールからメソッドを実行したときにも機能することです。

何か案が?

0 投票する
1 に答える
2181 参照

ruby-on-rails-3 - click_on と click_link の違いは?

リクエストスペックを書いていて、poltergeist-1.0.2 と capybara-1.1.2 を使っています。次のコードがあります。

ログインには、ユーザーが正常にログインしたことを示すフラッシュメッセージがあります.click_linkを使用している場合、カピバラが要素「仮想端末」を見つけることができないため、スペックは失敗しますが、click_onを使用している場合はすべて合格します. 「仮想端末」はボタンではなく、リンクです。

click_on と click_link の違いは何ですか。