Selenium コア拡張機能 (User-Extensions.js)
拡張機能を理解するには、まずSelenium IDEの3つの柱を理解しましょう。
- ロケーター戦略: UI で要素を見つける方法。
今、 Selenium IDE には、豊富なアクション、アサーション/アセッサー、およびロケーター戦略を備えた非常に成熟したライブラリがあります。
ただし、プロジェクトの要件に応じて、さらに機能を追加する必要がある場合があります。 そのような状況では、カスタム拡張機能を追加してこのライブラリを拡張できます。 これらのカスタム拡張機能は「ユーザー拡張機能」と呼ばれます。
たとえば、Web 要素にテキストを入力する前にテキストを大文字に変換できるアクションが必要です。 このアクションはデフォルトのアクション ライブラリに見つかりません。 そのような場合は、独自の「ユーザー拡張機能」を作成できます。 このチュートリアルでは、テキストを大文字に変換するユーザー拡張機能を作成する方法を学びます。
作成要件 Selenium ユーザー拡張機能
ユーザー拡張機能を作成するには Selenium IDE の基本概念を知る必要があります。 Javaスクリプト と Java スクリプト プロトタイプ オブジェクトの概念。
ユーザー拡張機能を作成するには、 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; };
新しく作成したコア拡張機能を使用するにはどうすればよいですか?
- に行く Selenium IDE
[オプション] -> [オプション…] をクリックします。
- コマンドリストに拡張子が表示されます。
以下は、で使用される人気のある拡張機能/プラグインのリストです。 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 このチュートリアルで使用されるコア拡張機能