オブジェクトリポジトリ Selenium (XML およびプロパティ ファイル)
オブジェクト リポジトリとは何ですか?
オブジェクト リポジトリは、すべてのオブジェクトの共通の保存場所です。で Selenium WebDriver コンテキストでは、オブジェクトは通常、Web 要素を一意に識別するために使用されるロケーターになります。
オブジェクト リポジトリを使用する主な利点は、オブジェクトをテスト ケースから分離できることです。 XNUMX つの Web 要素のロケーター値が変更された場合、そのロケーターが使用されているすべてのテスト ケースを変更するのではなく、オブジェクト リポジトリのみを変更する必要があります。 オブジェクト リポジトリを維持すると、フレームワーク実装のモジュール性が高まります。
オブジェクト リポジトリの種類 Selenium ウェブドライバー
Selenium WebDriver は、デフォルトでは組み込みオブジェクト リポジトリを提供しません。ただし、オブジェクト リポジトリは、キーと値のペアのアプローチを使用して構築できます。キーはオブジェクトに与えられた名前を指し、値は Web ページ内のオブジェクトを一意に識別するために使用されるプロパティを指します。
作成できるオブジェクトリポジトリの種類は次のとおりです。 Selenium ウェブドライバー。
- プロパティファイルを使用したオブジェクトリポジトリ
- XMLファイルを使用したオブジェクトリポジトリ
Selenium プロパティ ファイルを使用した Web ドライバー オブジェクト リポジトリ
このアプローチでは、プロパティ ファイルは、データがキーと値のペアの形式で保存されるテキスト ファイルです。以下のチュートリアルでは、次のトピックについて説明します。
ステップ1) Eclipseでプロパティファイルを作成する
- まず、Eclipse で以下の Java プロジェクト構造を作成する必要があります。プロジェクト名とパッケージ名は、任意の有効な名前にすることができます。
- メインプロジェクトフォルダーを右クリックし、「新規」->「その他」を選択します。
- 次のウィンドウで、「一般」→「ファイル」を選択し、「次へ」ボタンをクリックします。
- 新しいファイルリソースウィンドウで拡張子「.properties」が付いた有効なファイル名を入力し、「完了」ボタンをクリックします。
- 「application.properties」という名前のファイルがプロジェクト構造に表示される必要があります
ステップ 2) データをプロパティ ファイルに保存する
- データはキーと値のペアの形式でプロパティ ファイルに保存され、キーはファイル全体で一意になります。
- プロパティ ファイルを使用して、ロケーター値を使用して Web 要素を識別してみます。
- application.properties ファイルを開きます Eclipse 以下のデータを保存します
MobileTesting=//a[text()='MOBILE TESTING'] EmailTextBox = philadelphia-field-email SignUpButton = philadelphia-field-submit
4) このチュートリアルでは、次のデモ Web サイトを使用します。
http://demo.guru99.com/test/guru99home/
。 テストシナリオは次のとおりです。
- XPATH を使用して「モバイル テスト」リンクをクリックします。
- 戻る
- IDを使用してメールテキストボックスにデータを入力する
- IDを使用して「サインアップ」ボタンをクリックします
ステップ 3) プロパティファイルからデータを読み取る
- プロパティ ファイルからのデータの読み取りは、java.util パッケージで提供される組み込みの Properties クラスを使用して実行できます。
- 最初に、以下のように Properties クラスのオブジェクトを作成する必要があります。
Properties obj = new Properties();
- プロパティファイルへのパスを使用して FileInputStream クラスのオブジェクトを作成する必要があります
FileInputStream objfile = new FileInputStream(System.getProperty("user.dir")+"\\application.properties");
- プロパティファイルからのデータの読み取りは、JavaのPropertiesクラスが提供するloadメソッドを使用して実行できます。 以下のコードは、load メソッドの使用法を示しています。
Properties obj = new Properties(); FileInputStream objfile = new FileInputStream(System.getProperty("user.dir")+"\\application.properties"); obj.load(objfile); String mobileTesting = obj.getProperty("MobileTesting");
文字列「mobileTesting」には、Web ページ内のモバイル テスト リンクを識別するための XPATH が含まれます。
ステップ 4) テスト スクリプトでプロパティ ファイルを使用する
プロパティ ファイルをテスト スクリプトで使用するには、プロパティ ファイルからデータを読み取り、そのデータをパラメータとして findElement メソッドに渡します。 以下のコードは、テスト スクリプトでのプロパティ ファイルから読み取られたデータの使用法を示しています。
driver.findElement(By.xpath(obj.getProperty("MobileTesting"))).click(); driver.findElement(By.id(obj.getProperty("EmailTextBox"))).sendKeys("testguru99@gmail.com"); driver.findElement(By.id(obj.getProperty("SignUpButton"))).click();
以下は、上記のテスト シナリオで使用される完全なコードです。
package com.objectrepository.demo; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.util.Properties; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; public class DemoOR { public static void main(String[] args) throws IOException { // Create WebDriver Instance WebDriver driver; System.setProperty("webdriver.chrome.driver","G:\\chromedriver.exe"); driver = new ChromeDriver(); driver.get("http://demo.guru99.com/test/guru99home/"); driver.manage().window().maximize(); // Load the properties File Properties obj = new Properties(); FileInputStream objfile = new FileInputStream(System.getProperty("user.dir")+"\\application.properties"); obj.load(objfile); // Nagigate to link Mobile Testing and Back driver.findElement(By.xpath(obj.getProperty("MobileTesting"))).click(); driver.navigate().back(); // Enter Data into Form driver.findElement(By.id(obj.getProperty("EmailTextBox"))).sendKeys("testguru99@gmail.com"); driver.findElement(By.id(obj.getProperty("SignUpButton"))).click(); } }
Selenium XML ファイルを使用した WebDriver オブジェクト リポジトリ
XML は Extensible Markup Language の略です。 XML ファイルは、基本構造として Document Object Model (DOM) を使用します。 XML ファイル形式は、Web ページが構築される HTML 形式を複製します。 以下に取り上げるトピックのリストを示します。
ステップ1) EclipseでXMLファイルを作成する
- 以下の Java プロジェクト構造を次の場所に作成する必要があります。 Eclipse.
- プロジェクトフォルダーを右クリックし、「新規」→「その他」を選択します。
- XMLフォルダー内のXMLファイルを選択し、「次へ」ボタンをクリックします。
- 有効な XML ファイル名を入力し、「完了」ボタンをクリックします。
- 以下に示すように、XML ファイルがプロジェクト フォルダーに追加されます。
ステップ 2) データを XML ファイルに保存する
データはドキュメント オブジェクト モデル (DOM) の形式で XML ファイルに保存できます。 わかりやすくするために、以下のテスト シナリオを例として使用します。
- XPATH を使用して「モバイル テスト」リンクをクリックします。
- ホームページに戻る
- IDを使用してメールテキストボックスにデータを入力する
- IDを使用して「サインアップ」ボタンをクリックします
使用するXMLファイルの形式は以下のとおりです。
<menu> <mobiletesting>//a[text()='MOBILE TESTING']</mobiletesting> <email> philadelphia-field-email</email> <signup> philadelphia-field-submit </signup> </menu>
上記のXMLコードをproperties.xmlに保存します。
「デザイン」タブには次のように表示されます。
ステップ 3) XML ファイルからデータを読み取る
1. XML ファイルからのデータの読み取りは、Java の組み込み 'dom4j' クラスを使用して実行できます。 コードを続行する前に、以下の JAR ファイルをプロジェクトのビルドパスに追加する必要があることに注意してください。
- jaxen.jar
- dom4j-1.6.jar
2. 以下は、XML ファイルからデータを読み取るコードです。
File inputFile = new File(System.getProperty("user.dir") +"\\properties.xml"); SAXReader saxReader = new SAXReader(); Document document = saxReader.read(inputFile); String mobileTesting = document.selectSingleNode("//menu/mobiletesting").getText(); String emailTextBox = document.selectSingleNode("//menu/email").getText(); String signUpButton = document.selectSingleNode("//menu/signup").getText();
3. 最初に、File オブジェクトを作成し、それをパラメータとして SAXReader クラスの「read」メソッドに渡す必要があります。 XML ファイル データが正常に読み取られると、「selectSingleNode」メソッドを使用して XML ドキュメントの個々のノードにアクセスできます。
ステップ 4) テスト スクリプトで XML ファイルを使用する
XML ファイルは、XML ファイルからデータを読み取り、そのデータをパラメータとして findElement メソッドに渡すことで、テスト スクリプトで使用できます。 以下のコードは、テスト スクリプトで XML ファイルから読み取られたデータの使用法を示しています。
driver.findElement(By.xpath(mobileTesting)).click(); driver.findElement(By.id(emailTextBox)).sendKeys("testguru99@gmail.com"); driver.findElement(By.id(signUpButton)).click();
以下のコードは、Selenium WebDriverでのXMLファイルの使用を示しています。
package com.objectrepository.demo; import java.io.*; import java.util.*; import org.dom4j.*; import org.dom4j.io.SAXReader; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; public class DemoORXML { public static void main(String[] args) throws DocumentException { // Creating WebDriver Instance WebDriver driver; System.setProperty("webdriver.chrome.driver","G:\\chromedriver.exe"); driver = new ChromeDriver(); driver.get("http://demo.guru99.com/test/guru99home/"); driver.manage().window().maximize(); // Reading XML File File inputFile = new File(System.getProperty("user.dir") +"\\properties.xml"); SAXReader saxReader = new SAXReader(); Document document = saxReader.read(inputFile); String mobileTesting = document.selectSingleNode("//menu/mobiletesting").getText(); String emailTextBox = document.selectSingleNode("//menu/email").getText(); String signUpButton = document.selectSingleNode("//menu/signup").getText(); //Navigating to Mobile Testing and back driver.findElement(By.xpath(mobileTesting)).click(); driver.navigate().back(); //Entering Form Data driver.findElement(By.id(emailTextBox)).sendKeys("testguru99@gmail.com"); driver.findElement(By.id(signUpButton)).click(); } }
Webドライバーをダウンロードする Eclipse プロジェクト
まとめ
- オブジェクト リポジトリは、すべてのオブジェクトの共通の保存場所です。
- Selenium WebDriver はデフォルトで組み込みオブジェクト リポジトリを提供しません
- 2種類のオブジェクトリポジトリを作成できます。 Selenium
- プロパティファイルを使用したオブジェクトリポジトリ
- XMLファイルを使用したオブジェクトリポジトリ
- プロパティ ファイルは、データがキーと値のペアの形式で保存されるテキスト ファイルです。
- XML ファイル形式は、Web ページが構築される HTML 形式を複製します。