問題タブ [pageobjects]
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.
java - PageObject デザイン パターン用の JUnit または TestNG を使用した Selenium 2 Web ドライバー
Selenium 2 Webdriver を使用したテスト フレームワーク用に、Junit と TestNG のどちらかを選択しようとしています。これには Page オブジェクトのデザイン パターンを使用することにしました。
@BeforeSuite アノテーションを使用することで、TestNG はこのアプローチに適していると確信しています。このための簡単な例を説明しました。
- Googleページにアクセスします。
- gmail.com を検索します。Gmail.com にアクセス
- 「Create Account」テキストのテスト/アサート。
- usn と pswd でログインします。
- ホームページの「inbox」のテスト/アサート
PageObjects: GooglePage. ログインページ ホームページ
例: 実際の TestClass。
GooglePage - PageObject
LoginPage - PageObject。
ホームページ - PageObject
私の質問は:
- >のようにJUnitで似たようなものを作るにはどうすればよいですか
- 一連のユーザー インタラクション
- 何かをテスト/アサートします。
- 再び次のページに移動します。
- 何かをテスト/アサートします。
最新の JUnit リリース 4.11 がテスト実行順序をサポートしていることを認識しています。
また、「一連のワークフロー/相互作用 (実際のテストの前)」メソッドの手順は、@BeforeClass でアノテーションを付けることができます。
しかし、このアノテーションは私のメソッドを強制的に静的にし、@BeforeClass メソッド内のすべてのページオブジェクトを静的として宣言する必要があります。
(上記のサンプルは、私の場合を説明したかった単なる例です。実際には、かなりの数のページ オブジェクトとそのメソッドが、このメソッドでアサートする前に呼び出されています。)
私の主張が明確になったことを願っています。これに関する意見やフィードバックをいただければ幸いです。
ありがとう
ruby - page-object を使用してフィールドセットを検索する
チェックボックスのセットを見つけようとしていますが、それらをフィールドセットに配置する必要があります。html は次のようになります (これは gwt アプリなので、大量のものが生成されます。
私は Watir と page-object gem を使用しています。フィールドセットを見つけようとしていますが、フィールドセット要素がありません。長期的には、各チェックボックスを見つけて、チェックされているかどうかの値を取得し、その名前とともにハッシュに保存する必要があります。
page-object に fieldset メソッドがあったとしても、連続する各チェックボックスを見つけて値とラベルを取得する方法がわかりません。
selenium - PageObject またはテスト クラスからテスト データを渡す必要がありますか?
私は、2つのレイヤーがあるPageObjectパターンに従って、Selenium Webdriverを使用して自動化フレームワークを開発中です。
- テストクラス (テスト仕様)
- PageObject クラス (テスト実装)
私のテスト クラスには、PageObject クラスのオブジェクトを作成し、実際に AUT とやり取りするこれらのクラスのメソッドを呼び出すTestNG 注釈メソッド ( 、 など) が含まれ@Test
ています。@BeforeTest
@AfterTest
テストにデータを渡す方法は、次を含めることです。
- アプリケーション内の要素のすべてのロケーター (css/xpath/class/id ロケーター)。
- 必要なすべてのテストデータ
プロパティ ファイル (例: testDataSet1.properties)。プロパティ ファイルを作成HashMap<String, String>
し、ハッシュマップからデータを読み取ってスクリプトで使用するすべてのページ オブジェクトにパラメーターとして渡します。テストクラスからテストデータをまったく渡していません。
What my problem is, I am not sure whether it is appropriate to read test-data in PageObjects. I get a feeling that this approach is very inflexible because I am tying test data to PageObjects instead of tying it to the tests. So when I need to perform data-driven tests / run the automation suite in multiple iterations, this will not work. Because, currently if I need to use different data each time I need to manually go and change the key specified in the hashmap which will fetch me a different value from the properties file.
Any suggestions?
java - Javaを使用してSelenium WebDriverでPageObjects、Page Factory、およびWebDriverWaitを使用する
私は Selenium WebDriver を使用して、私が取り組んできたいくつかのプロジェクトの機能テストを実装しています。Page Object 設計パターンを Page Factory で使用して、ロケーターを除外しようとしています。また、オプションのタイムアウト パラメーターを使用していくつかの待機手法を実装する静的な WaitTool オブジェクト (シングルトン) も作成しました。
私の現在の問題は、PageFactory が WebElements を初期化しようとする前に、待機メソッドを使用したいということです。私が待ちたい理由は、PageFactory がページ要素をページで使用可能になる前に初期化しようとする可能性があるためです。
サンプルの PageObject を次に示します。
サンプル TestObject は次のとおりです。
テストケースをより読みやすくするため、ロジックをできる限り (待機を含めて) ページオブジェクトに配置する傾向があります。
java - javaを使用してSelenium WebDriverプロジェクトでPage Objectナビゲーションを表現する方法
WebDriver API を使用する場合のページ間の移動は、通常、ナビゲーションを発生させるアクションが発生したときに返される必要がある次のページを返すページ オブジェクトによって行われることをいくつかの場所で読みました。
このソリューションは、常に同じページを返すアクション (新しい ResultPage を返す SearchPage.search() など) ではうまく機能しますが、入力や状態によってアクションがユーザーを別のページに移動させる場合はどうなるでしょうか。Java では、戻り値の型に基づくメソッドのオーバーロードは許可されていません。では、これを行うにはどうすればよいでしょうか。
期待される結果に基づいてNavigator
汎用オブジェクトを返すために使用できるオブジェクトを実装しようと大雑把に試みました。Page
ページをあるページ オブジェクトから別のページ オブジェクトに移動させるアクションは、次のようなメソッドを実装します。
テストは次のようになります。
しかし残念ながら、ユーザー入力に基づいてナビゲーターをどのページにも移動させることができませんでした。これを行う方法はありますか、またはこれを行う別の方法はありますか?
ソース:
ruby - モジュールからJSウィジェットにアクセスする
モジュールからカスタム JS ウィジェットにアクセスしようとしています。基本ページ クラスには、PageObject、DataMagic、および RSpec::Matchers のみが含まれます。
私のクラス
モジュール
JQuery UI 日付ピッカー ウィジェット
そして手順:
このテストを実行すると、次のエラーが表示されます。
では、モジュールからそのウィジェットにアクセスするにはどうすればよいですか?
UPD: ブラウザはここから開始しますhooks.rb
。
java - クラスの returntype を動的にする方法
自動化のために PageObjects パターンを使用しています。私は機能しました、
className は動的であるため、戻り値の型は SelectTab() に渡す className にする必要があります。
どうすればそれができますか?