問題タブ [selenium]
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.
selenium - Selenium を使用したデータの取得
最寄りの ScotiaBank 支店の営業時間を知りたいです。
ベース URL はhttp://maps.scotiabank.com/です。
そして私は・・・それから私は、
「ブランチ」ラジオボックスをクリックします。
「土曜日営業」のチェックボックスをクリックします。
検索ボックスに「B3H 1M7」(私の郵便番号)を入力します。
検索ボタンをクリックします。
ポップアップする最初の結果 (Micmac ショッピング センター) をクリックします。
営業時間を変数として保存します (businessHours と呼ばれます)。
そして今、私は立ち往生しています。
変数に割り当てたデータを、後で表示できるテキスト ファイルまたはその他の場所にエクスポートするにはどうすればよいですか? これが Selenium でも可能かどうかはわかりませんが、そうでない場合は、これを行う方法の代替方法を教えてもらえますか?
以下は、私が持っている現在の Selenium スクリプトの HTML コードです。
javascript - javascriptでfirebugコンソールを読む
firebug コンソールに記録された最新のコマンドを読み取る方法を探しています。
たとえば、私は何かをすることができます
そして、別の (疑似) コードは、
デバッグ ステートメントであるコンテキストはテスト対象のコード内にあり、コンソール チェックはセレン スクリプト内で実行されます。これにより、js 関数の奥深くに埋め込まれた情報や、実行時に構築される情報を観察できます。
unit-testing - セレンのポイントは何ですか?
わかりました、何かが足りないかもしれませんが、Selenium の要点が本当にわかりません。コードを使用してブラウザを開き、コードを使用してボタンをクリックし、コードを使用してテキストをチェックするポイントは何ですか? Web サイトを読んで、理論的には Web アプリケーションを自動的に単体テストするのが良いことを理解しましたが、最終的には、クリックして動作を視覚的に確認するだけでなく、このすべてのコードを記述するのに時間がかかるだけではありません。 ?
理解できません...
continuous-integration - Selenium に統合された xHTML マークアップ チェッカー
最近、継続的インテグレーション マシンで xHTML ソースの継続的なチェックを使用して、プロジェクトの品質を向上させる方法を考えました。
ほら、私たちにはプロジェクトがあります
http://sourceforge.net/projects/jtidy - jTidy JTidy は、HTML syntax checker
きれいなプリンターである HTML Tidy の Java ポートです。
コマンドライン インターフェイスを介して xHTML を検証できます。または、このツールは、すべてのソース コードが公開されているため、必要に応じて拡張できます。
assertTextPresent などのすべての Selenium 検証メソッドを上書きできるため、(現在の状態の HTML ソースを提供することによって) jTidy が呼び出され、エラーや警告が発生した場合は、継続的インテグレーション マシン ビルドに保存できます。ログ - プロジェクトに関連するすべてのユーザーがこの情報を見ることができます。
すべてのステップでこの呼び出しを統合するために、すべての Selenium メソッドを書き直すことはできませんが、(DOM 操作の後) 必要な場所でこの呼び出しを行うことができます。
はい、サイトに W3C マークアップ バリデーターを使用できますが、このバリデーターでページのソースの初期状態以外を検証する可能性はありません。ページの作成後、マークアップ エラー/警告を生成する可能性のある多数の DOM 操作が存在する可能性がありますが、このスキームですぐに見つけることができます。
継続的インテグレーションを使用する利点の 1 つは、コードからのフィードバックが迅速に得られることです。つまり、既存のコード ベースとどのように統合されるか、単体テストと機能テストに合格するかどうかをテストします。インスタント xHTML マークアップの検証ステータスなど、追加の有用な情報を入手してみませんか。問題の特定が早ければ早いほど、修正が容易になります。
このテーマについては、Google でまだ何も見つかりませんでした。そして知りたいのですが、このアイデアについてどう思いますか?
automation - Selenium で DOM オブジェクトにアクセスできますか?
私は、.object メソッドを使用して任意の要素の DOM オブジェクトにアクセスできる QuickTest Pro のバックグラウンドから来ています。Selenium RC に相当するものを知りたいです。
java - Selenium の click() イベントが常にトリガーされるわけではないようです => タイムアウトが発生しますか?
これが私がすることです:
リンク「mylink」は存在し、click() の最初の呼び出しは常に機能します。しかし、2 番目の click() は機能しているように見えることもあれば、そうでないこともあります。
ページの読み込みが開始されていないため、click() イベントがまったくトリガーされていないようです。残念ながら、この動作は過小評価的です。
これが私がすでに試したことです:
より長い時間のタイムアウトを設定
=> 役に立たなかった1つのページをロードした後に要素が存在するのを待つ
=>ページのロードが開始されないため、どちらも機能しません
今のところ、最終的に click() を 2 回呼び出すことになったので、次のようにします。
それはうまくいきますが、それは本当に良い解決策ではありません。私は別のフォーラムで、誰かが「clickAndWaitWithRetry」のようなものを書くことを提案したことも見ました:
しかし、それも適切な解決策ではないと思います.... click() イベントが時々トリガーされない理由はありますか?
ruby-on-rails - 備品とセレンとレール(オーマイ?)
RailsアプリのSeleniumテストでどのデータを使用しますか?フィクスチャからロードしますか?既存の開発データベースを使用しますか?別の(フィクスチャではない)データベースを使用しますか?
ここで自分の選択肢を検討しています。SeleniumGridの修正バージョンで実行される大規模なSeleniumテストスイートを備えたRailsアプリがあります。現在、プロセスの一部は、テストスイートが実行される前に、一度に大量のフィクスチャのセットをロードすることです。それはたくさんのデータです。そのほとんどは、本番データベースからエクスポートされたレポート情報です。最初に設定したとき、データをOracleからyamlにエクスポートしました。
一部のレポートテーブルでスキーマが変更されたため、もちろんフィクスチャデータを再生成する必要があります。たくさんあるので、ファイルを手作業で編集する価値はありません。ただし、スキーマを少し変更するたびに再生成する必要があるのは非効率的です。言うまでもなく、覚えておくべきもう1つのステップです。もっと良い方法はありますか?
編集:私はもともと、通常のRailsテストのように、各テストの前にフィクスチャをロードし、各テストの後にそれらをアンロードすることを意図していました。ただし、このレポートデータにより、フィクスチャのロードには約15分かかります。200以上のテストがあり、スイートは12時間ごとに実行されます。時空キャプテンを曲げることができます!
編集2:私はまた、この大きな備品のセットを持っていることは悪臭であることに同意します。ただし、レポートには多くのデータが集約されており、セレンテストの価値の多くはレポートをテストすることであるため、どのように削減するかはわかりません。
小さなデータセットであっても、スキーマの変更との調整を維持するための別のセットです。(ユニット、機能、および[Rails]統合テスト用に個別の小さなセットがあります。)
これは私の元の質問に戻ります-手でそれを行う以外に、または毎回それらを再生成することを覚えている他のオプションはありますか?
gwt - XPathを使用して表示されている要素のみを選択するにはどうすればよいですか?
Seleniumを使用していくつかのテストを作成しようとしているGWTアプリケーションがあります。
XPathを使用して、テスト用のページ上の要素を識別しています。値はGWTによって自動生成され、変更される可能性があるため、使用id
は機能しません。id
次のようにラベルでボタンを見つけることができることに気付いたとき、物事は順調に進み始めました。
しかし、複数のテストを実行し始めると、問題が発生し始めました。問題は、Javascriptによって生成されたGWTアプリのすべての異なる「ページ」がHTMLの非表示<div>
要素に残っていることであることに気付きました。つまり、Seleniumのテストでは、現在のビューに表示されているボタンではなく、非表示のボタンをクリックすることがありました。
Firebugを使用してHTMLを調べると、GWTは属性に追加することで<div>
要素を非表示にしているようです。これは、次のようにすべての非表示の[OK]ボタンを見つけることができることを意味します。display: none
style
これにより、すべての非表示のOKボタン、つまり、にあること<div>
によって非表示になっている祖先を持つボタンが検索さdisplay: none
れstyle
ます。
私の質問は、XPathを使用して表示されている[OK]ボタンのみを検索するにはどうすればよいですか?に祖先<div>
要素がないボタンを見つけるにはどうすればよいですか?display: none
style
java - テストが失敗したときに Selenium がブラウザーの強制終了に失敗する
テストが失敗した場合にテストブラウザページを強制終了するように Selenium を設定するにはどうすればよいですか?
現在、Selenium テスト ケースを実行してテストが失敗すると、ブラウザ ページが開いたままになり、多数のテストが失敗したときに問題が発生します。興味深いことに、テストに合格した場合はそうではありません。
なにか提案を??
unit-testing - セレンテスト後のデータのクリーンアップ
内部 Web アプリ用にいくつかの Selenium テストをセットアップしており、テストの「ベスト プラクティス」に関するアドバイスを探しています。テストの 1 つは、UI を介して削除できないデータを UI を介して追加しようとしています (たとえば、Web アプリを介してレコードを追加できますが、削除するには内部の誰かに連絡してデータベース レベルで削除する必要があります)。通常、Selenium テストの実行後のデータのクリーンアップをどのように説明しますか?
問題のアプリは PHP で作成されており、テストには PHP を使用しています (Selenium RC と SimpleTest を使用)。ただし、これは幅広いベスト プラクティスの質問であるため、他のツールなども使用できます。テスト中のアプリは開発環境なので、テストからのデータの持ち越しは特に気になりません。
いくつかのアイデア:
- Selenium テストでデータベースに手動で接続してデータをクリーンアップする
- これを管理するためにDBUnitのようなものを使用しますか?
- データを追加するだけで、クリーンアップについて心配する必要はありません (別名、怠惰なアプローチ)。
ありがとう!
編集:ほとんどのアイデアは同じ結論に集中しているようです:既知のデータセットを処理し、テストが終了したら復元します。このメカニズムは、おそらく言語やデータの量などによって異なりますが、これは私のニーズには合っているようです。