Selenium コア拡張機能 (User-Extensions.js)

拡張機能を理解するには、まず Selenium IDE の XNUMX つの柱を理解しましょう

  1. アクション: UI 画面で実行している操作

    Selenium コア拡張機能

  2. 評価者/アサーション: UI から取得したデータに対してどのような検証を行うか

Selenium コア拡張機能

  1. ロケーター戦略: UI で要素を見つける方法。

Selenium コア拡張機能

現在、Selenium IDE には、豊富なアクション、アサーション/アセッサー、およびロケーター戦略を備えた非常に成熟したライブラリがあります。

ただし、プロジェクトの要件に応じて、さらに機能を追加する必要がある場合があります。 そのような状況では、カスタム拡張機能を追加してこのライブラリを拡張できます。 これらのカスタム拡張機能は「ユーザー拡張機能」と呼ばれます。

たとえば、Web 要素にテキストを入力する前にテキストを大文字に変換できるアクションが必要です。 このアクションはデフォルトのアクション ライブラリに見つかりません。 そのような場合は、独自の「ユーザー拡張機能」を作成できます。 このチュートリアルでは、テキストを大文字に変換するユーザー拡張機能を作成する方法を学びます。

Selenium ユーザー拡張機能を作成するための要件

Selenium IDE のユーザー拡張機能を作成するには、次の基本概念を知る必要があります。 JavaScriptを > Java スクリプト プロトタイプ オブジェクトの概念。

Selenium ユーザー拡張機能を作成するための要件

ユーザー拡張機能を作成するには、Java スクリプト メソッドを作成し、それを Selenium オブジェクト プロトタイプと PageBot オブジェクト プロトタイプに追加する必要があります。

Selenium IDE はユーザー内線番号をどのように認識しますか?

Selenium IDE の起動時にユーザー拡張機能を Selenium IDE に追加すると、JavaScript プロトタイプ内のこれらの拡張機能がすべて読み込まれ、Selenium IDE はそれらを名前で認識します。

ユーザー内線番号の作成方法

ステップ 1) アクション– すべてのアクションは「do」で開始されます。つまり、アクションが大文字のテキストの場合、その名前は次のようになります。 doTextUpperCase。 Selenium IDE にこのアクション メソッドを追加すると、Selenium IDE 自体がこのアクションの wait メソッドを作成します。 したがって、この場合、作成するとき doTextUpperCase アクションを実行すると、Selenium IDE は対応する待機関数を次のように作成します。 テキスト大文字と待機。 XNUMX つのパラメータを受け入れることができます

例: 大文字テキストアクション

Selenium.prototype.doTextUpperCase = function(locator, text) {
     // Here findElement is itself capable to handle all type of locator(xpath,css,name,id,className), We just need to pass the locator text
     var element = this.page().findElement(locator);
      
     // Create the text to type
     text = text.toUpperCase();
      
     // Replace the element text with the new text
     this.page().replaceText(element, text);
    };

ステップ 2) 評価者/アサーション - Selenium オブジェクト プロトタイプに登録されているすべての評価者にはプレフィックスが付けられます

「get」または「is」による例。 getValueFromCompoundTable 、 isValueFromCompoundTable 。テスト ケースのターゲット用と値フィールド用の XNUMX つのパラメーターを受け入れることができます。

ユーザー内線番号の作成

各評価者には、「verify」、「assert」という接頭辞が付いた対応する検証関数と、「waitFor」という接頭辞が付いた待機関数があります。

例: 大文字テキスト評価者の場合

Selenium.prototype.assertTextUpperCase = function(locator, text) {
     // All locator-strategies are automatically handled by "findElement"
     var element = this.page().findElement(locator);
      
     // Create the text to verify
     text = text.toUpperCase();
      
     // Get the actual element value
     var actualValue = element.value;
    
     // Make sure the actual value matches the expected
     Assert.matches(expectedValue, actualValue);
    };
    
    Selenium.prototype.isTextEqual = function(locator, text) {
     return this.getText(locator).value===text;
    };
    
    Selenium.prototype.getTextValue = function(locator, text) {
     return this.getText(locator).value;
    };

ステップ 3) ロケーター戦略 - 要素を見つける独自の関数を作成したい場合は、

プレフィックス「locateElementBy」を持つ関数を使用して PageBot プロトタイプを拡張する必要があります。

XNUMX つのパラメータを取ります。XNUMX つ目はロケーター文字列、XNUMX つ目はドキュメントです。

検索する必要がある場所。

例: 大文字テキストロケーターの場合

// The "inDocument" is a document you are searching.
    PageBot.prototype.locateElementByUpperCase = function(text, inDocument) {
     // Create the text to search for
     var expectedValue = text.toUpperCase();
      
     // Loop through all elements, looking for ones that have
     // a value === our expected value
     var allElements = inDocument.getElementsByTagName("*");
// This star '*' is a kind of regular expression it will go through every element (in HTML DOM every element surely have a tag name like<body>,<a>,<h1>,<table>,<tr>,<td> etc. ). Here our motive is to find an element which matched with the Upper Case text we have passed so we will search it with all elements and when we get match we will have the correct web element.
     for (var i = 0; i < allElements.length; i++) {
     var testElement = allElements[i];
     if (testElement.innerHTML && testElement.innerHTML === expectedValue) {
     return testElement;
     }
     }
     return null;
    };

新しく作成したコア拡張機能を使用するにはどうすればよいですか?

  1. Selenium IDE に移動します

    [オプション] -> [オプション…] をクリックします。

新しく作成したコア拡張機能を使用する

  1. 「全般」セクションで、新しく作成した Selenium Core Extension の場所を選択します。

    新しく作成したコア拡張機能を使用する

  2. 「OK」をクリックし、Selenium IDE を再起動します。

新しく作成したコア拡張機能を使用する

  1. コマンドリストに拡張子が表示されます。

新しく作成したコア拡張機能を使用する

Selenium IDE で使用される一般的な拡張機能/プラグインのリストは次のとおりです。

お名前 目的
お気に入り テスト スイートをお気に入りとしてマークし、ワンクリックで実行するには
フレックスパイロットX Flex ベースの自動化の場合
フレックスモンキウム Adobe Flex ベースの記録と再生の場合 テスト Selenium IDE で
ファイルログ ログをファイルに保存する場合
フロー制御 テスト実行フローを制御するには
ハイライト要素 Web コントロールを強調表示するには
暗黙的な待機 特定の制限時間内に要素を待機するには
失敗時のスクリーンショット 失敗時にスクリーンショットを撮る
試験結果 Save テストケース ワンクリックでテストスイートの結果を取得

SeleniumHQ 公式サイトのダウンロード セクションからこれらすべてを入手できます。

http://docs.seleniumhq.org/download/

まとめ

  • Selenium IDE には、アクション、アセッサ/アサーション、ロケーター戦略の XNUMX つの部分があります。
  • Selenium IDE が現在の要件を満たしていない場合、ユーザー拡張機能が作成されます。
  • ユーザー拡張機能を作成するには、Selenium のオブジェクト プロトタイプに JavaScript を追加する必要があります。
  • 拡張機能の作成後、Selenium IDE に追加し、IDE を再起動する必要があります。

このチュートリアルで使用する Selenium Core Extension をダウンロードします。