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

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

selenium-webdriver - Selenium:C#でByChainedクラスを使用するには?

2つの質問があります

Selenium:C#でByChainedクラスを使用するには?

pageobject と pagefactory モデルで要素を識別するために class と innertext のような複数の識別プロパティを与える方法はありますか?

0 投票する
2 に答える
233 参照

protractor - ページ オブジェクト モデルの実装に関するヘルプが必要

私はページオブジェクトモデルを実装している最中です。これに関して 1 つの質問があります。以下を参照してください。

ページのロケーターとメソッドを持つページ ファイルを作成しました。これらのメソッドを呼び出してアサーションを実行しているスペック ファイルがあります。私の質問は、1 つのページに 100 を超えるテスト ケースがある場合、単一のテストに対して単一のアサーション ファイルを作成するか、100 のテストに対して 100 のアサーション ファイルを作成する必要があるかということです。

上手に管理する方法を教えてください。

よろしく、マナン

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

class - WebDriver PageObjects & 大量のロケーター

この 1 年間、私は自分のグループのために非常に優れた WebDriver フレームワークを構築しました。かなり標準的な運賃: 通常、ページ クラスは、プラットフォーム上のページの全機能をカプセル化します (By オブジェクトとしてのコントロール、必要に応じてメソッド) & いくつかのグローバル メソッドで基本クラスを拡張します。JUnit テスト クラス内で複数のページが呼び出され、典型的なアサーション メソッドです。 、ヤダヤダ。本のように贅沢なことは何もありませんが、非常に機能的で柔軟です。

しかし最近、フレームワークを使用して、100 以上の入力、選択、オプションなどを保持できるフォームを含む多数のページを自動化するよう依頼されました。さらに、多くのカスタム フォーム コントロールの id は環境ごとに変化します (幸いなことに、最初のプッシュの後、それらは環境ごとに静的なままです)。ともかく...

私が毎日使用する典型的な PageObject 構造を見てみましょう。

私が言ったように、ここで風変わりなことは何もありませんが、ここで皆さんへの私の質問です。PageObject ごとに従来の 5 ~ 15 By ではなく、10 の Pages に対して 100 を超える可能性がある状況を考えてみましょう。また、環境ごとに独自の値を持つことになるという複雑な問題を投げかけますが、これは完全に誰の手にも負えず、調整することはできません。それで、ここで適切なアプローチは何ですか...私は箇条書きを噛んでページごとに100インチのByをハードコードしますか、すべてのByをたとえばExcelドキュメントに外部化し、JXLなどを介してすべてをプルしますか、または静的であることがわかっているByをハードコーディングして、すべてを外部ファイルにスローしますか?

結局のところ、正解がないことはわかっていますが、他の人がこれにアプローチすることに興味があります。現在、非常に多くのフォーム要素を持ち、PageObject 内で変更されないコントロールを定義するページの By を外部化しましたが、扱いにくいと感じています。エレガンスを求めすぎているのかもしれませんが、どんな考えでも本当に素晴らしいと思います。

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

java - Webdriver Page Object Model を使用して多数の WebElements のアサーションを処理する

50 の奇妙な WebElements を含むページがあり、正しいテキストを持っていると断言したいと思います。私はページオブジェクトを使用しているので、テストはオブジェクトから分離されており、テストはアサーションが存在する必要がある場所です。

要素ごとに 50 個の個別の @Test を使用したくないので、テキスト値を保持してそれぞれに対してアサートするために、ある種のコレクション、リスト、または配列が必要です。ただし、1 つのテキスト値が間違っている場合にテストが失敗することは望ましくありません (頻繁に更新され、50 個の値を含むページで発生する可能性が高いシナリオ)。これは、アサーションごとに @Test を分離することを示していますか?

だから私は、PageObject.

次に、できれば 1 つのメソッドで、.getText()) を使用して、WebElement の値を文字列としてテスト クラスに渡す必要があります。

テスト クラスの 50 個の値のそれぞれについて、できれば 1 つの @Test の下でテキストが正しいことをアサートする必要がありますが、1 つの値が正しくない場合にテストが失敗することはありません。

私はこれに数時間取り組んできました。これが不明確である場合は申し訳ありません。また、テキストのチャンクについてお詫び申し上げます。私は初心者のようなものです - 明確にすることができれば、尋ねてください。これには明らかに、私が見逃している一般的なアプローチがあります。

ありがとう

0 投票する
2 に答える
1202 参照

selenium - Specflow と Selenium (BDD) を使用している場合にユーザーをログアウトする必要がある場合

テスト用に Specflow、Selenium、PageObject パターンを使い始めました。シナリオを互いに独立させたいのですが、テスト機能の実行を開始すると、最初のシナリオの後、ユーザーが匿名ではないことがわかります。

  • テスト ユーザーはいつログアウトする必要がありますか?
    • 各シナリオの前に?
    • 各シナリオの後?
  • Specflow と Selenium は各シナリオの後に状態を落とすことができますか?
  • page.Logout()毎回電話しないといけないの?
0 投票する
2 に答える
2062 参照

selenium - FindBy 属性はいつ driver.FindElement をトリガーしますか?

私の質問は次のとおりです。findby 属性で装飾された webelement は、それらを参照するたびに findelement 関数を呼び出しますか? そうでない場合、いつですか?

また、装飾された List< webelement > での手順は何ですか? リストを参照したとき、またはそのリスト内の要素を参照したときにトリガーされますか?

古い要素の例外が発生する状況がいくつかあり、それらに対処する方法を知りたいので、質問しています。