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

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

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

    Selenium コア拡張機能

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

Selenium コア拡張機能

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

Selenium コア拡張機能

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

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

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

作成要件 Selenium ユーザー拡張機能

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

作成要件 Selenium ユーザー内線番号

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

認定条件 Selenium IDE はユーザー内線番号を認識しますか?

ユーザー拡張機能を追加した後、 Selenium 開始時の IDE Selenium IDE、JavaScript プロトタイプのこれらすべての拡張機能がロードされ、 Selenium IDE はそれらを名前で認識します。

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

ステップ 1) アクション– すべてのアクションは「do」で開始されます。つまり、アクションが大文字のテキストの場合、その名前は次のようになります。 doTextUpperCase。 このアクションメソッドを追加すると、 Selenium SDI、 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) 評価者/アサーション - セレンオブジェクトプロトタイプに登録されたすべての評価者にはプレフィックスが付けられます

「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 コア エクステンション

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

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

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

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

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

以下は、で使用される人気のある拡張機能/プラグインのリストです。 Selenium IDE

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

これらすべておよびその他多くのものを次のサイトから入手できます。 SeleniumHQ公式サイトのダウンロードセクション

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

まとめ

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

ダウンロード Selenium このチュートリアルで使用されるコア拡張機能