مستودع الكائنات في السيلينيوم (ملف XML والخصائص)

ما هو مستودع الكائنات؟

مستودع الكائنات هو موقع تخزين مشترك لجميع الكائنات. في سياق Selenium WebDriver، عادةً ما تكون الكائنات هي محددات المواقع المستخدمة لتحديد عناصر الويب بشكل فريد.

الميزة الرئيسية لاستخدام مستودع الكائنات هي فصل الكائنات عن حالات الاختبار. إذا تغيرت قيمة محدد المواقع لعنصر ويب واحد، فيجب تغيير مستودع الكائنات فقط بدلاً من إجراء تغييرات في جميع حالات الاختبار التي تم استخدام محدد المواقع فيها. يؤدي الحفاظ على مستودع الكائنات إلى زيادة نمطية تنفيذ إطار العمل.

أنواع مستودعات الكائنات في برنامج تشغيل الويب السيلينيوم

لا يقدم Selenium WebDriver مستودعًا مدمجًا للكائنات بشكل افتراضي. ومع ذلك، يمكن إنشاء مستودعات الكائنات باستخدام نهج زوج المفتاح والقيمة حيث يشير المفتاح إلى الاسم المعطى للكائن وتشير القيمة إلى الخصائص المستخدمة لتعريف كائن بشكل فريد داخل صفحة الويب.

التاليwing هي أنواع مستودعات الكائنات التي يمكن إنشاؤها في Selenium WebDriver.

  1. مستودع الكائنات باستخدام ملف الخصائص
  2. مستودع الكائنات باستخدام ملف XML

مستودع كائنات برنامج تشغيل الويب السيلينيوم باستخدام ملف الخصائص

في هذا الأسلوب، ملف الخصائص هو ملف نصي حيث يتم تخزين البيانات على شكل أزواج قيمة المفتاح. البرنامج التعليمي أدناه سوف يتناول المتابعةwing المواضيع.

الخطوة 1) إنشاء ملف خصائص في eclipse

  1. للبدء، يجب إنشاء بنية مشروع جافا أدناه eclipse. يمكن أن يكون اسم المشروع واسم الحزمة أي أسماء صالحة.

إنشاء ملف خصائص في Eclipse

  1. انقر بزر الماوس الأيمن على مجلد المشروع الرئيسي وحدد جديد-> أخرى

إنشاء ملف خصائص في Eclipse

  1. في النافذة التالية، حدد عام -> ملف وانقر على زر "التالي".

إنشاء ملف خصائص في Eclipse

  1. قم بتوفير اسم ملف صالح بالملحق ".properties" في نافذة مورد الملف الجديد وانقر على زر "إنهاء"

إنشاء ملف خصائص في Eclipse

  1. يجب أن يتم عرض ملف يسمى "application.properties" في بنية المشروع

إنشاء ملف خصائص في Eclipse

الخطوة 2) تخزين البيانات في ملف الخصائص

  1. يتم تخزين البيانات في ملف الخصائص في شكل أزواج قيمة المفتاح، مع كون المفتاح فريدًا عبر الملف.
  2. سنحاول استخدام ملف الخصائص لتحديد عناصر الويب باستخدام قيم محدد المواقع.
  3. افتح ملف application.properties في Eclipse وتخزين فولوwing البيانات
MobileTesting=//a[text()='MOBILE TESTING']
EmailTextBox = philadelphia-field-email
SignUpButton = philadelphia-field-submit

تخزين البيانات في ملف الخصائص

4) لهذا البرنامج التعليمي، اتبعwing يتم استخدام الموقع التجريبي:

http://demo.guru99.com/test/guru99home/. هنا هو سيناريو الاختبار:

  • انقر على رابط اختبار الهاتف المحمول باستخدام XPATH
  • العودة
  • أدخل البيانات على email نصbox باستخدام معرف
  • انقر على زر التسجيل باستخدام الهوية

الخطوة 3) قراءة البيانات من ملف الخصائص

  1. يمكن قراءة البيانات من ملف الخصائص باستخدام فئة الخصائص المضمنة المتوفرة في حزمة java.util.
  2. في البداية، يجب إنشاء كائن من فئة الخصائص على النحو التالي
  Properties obj = new Properties();
  1. نحن بحاجة إلى إنشاء كائن من فئة FileInputStream مع المسار إلى ملف الخصائص
FileInputStream objfile = new FileInputStream(System.getProperty("user.dir")+"\\application.properties");
  1. يمكن قراءة البيانات من ملف الخصائص باستخدام طريقة التحميل التي تقدمها فئة الخصائص في Java. يوضح الكود أدناه استخدام طريقة التحميل.
Properties obj = new Properties();
FileInputStream objfile = new FileInputStream(System.getProperty("user.dir")+"\\application.properties");
obj.load(objfile);
String mobileTesting = obj.getProperty("MobileTesting");

ستحتوي السلسلة "mobileTesting" على 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();							
  }		

}		

مستودع كائنات السيلينيوم WebDriver باستخدام ملف XML

XML تعني لغة التوصيف القابلة للتوسيع. يستخدم ملف XML نموذج كائن المستند (DOM) باعتباره البنية الأساسية. سيعمل تنسيق ملف XML على تكرار تنسيق HTML الذي تم إنشاء صفحة الويب عليه. وفيما يلي قائمة المواضيع التي سيتم تناولها.

الخطوة 1) إنشاء ملف XML في eclipse

  1. يجب إنشاء هيكل مشروع Java أدناه Eclipse.

إنشاء ملف XML في Eclipse

  1. انقر بزر الماوس الأيمن على مجلد المشروع، وحدد جديد -> أخرى

إنشاء ملف XML في Eclipse

  1. حدد ملف XML داخل مجلد XML وانقر على زر "التالي".

إنشاء ملف XML في Eclipse

  1. أدخل اسم ملف XML صالحًا وانقر على زر "إنهاء".

إنشاء ملف XML في Eclipse

  1. سيتم إضافة ملف XML إلى مجلد المشروع كما هو موضح أدناه

إنشاء ملف XML في Eclipse

الخطوة 2) تخزين البيانات في ملف XML

يمكن تخزين البيانات في ملف XML على شكل نموذج كائن المستند (DOM). من أجل البساطة، يمكننا استخدام سيناريو الاختبار أدناه كمثال.

  • انقر على رابط اختبار الهاتف المحمول باستخدام XPATH
  • انتقل إلى الصفحة الرئيسية
  • أدخل البيانات على email نصbox باستخدام معرف
  • انقر على زر التسجيل باستخدام الهوية

فيما يلي تنسيق ملف XML الذي سيتم استخدامه.

<menu>     
      <mobiletesting>//a[text()='MOBILE TESTING']</mobiletesting>  
      <email> philadelphia-field-email</email> 
      <signup> philadelphia-field-submit </signup>     
 </menu>

قم بتخزين كود XML أعلاه في property.xml

تخزين البيانات في ملف XML

في علامة تبويب التصميم سترى

تخزين البيانات في ملف XML

الخطوة 3) قراءة البيانات من ملف XML

1. يمكن قراءة البيانات من ملف XML باستخدام فئة "dom4j" المضمنة في Java. يرجى ملاحظة أنك تحتاج إلى إضافة ملفات 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. في البداية، نحتاج إلى إنشاء كائن ملف وتمريره كمعلمة إلى طريقة "القراءة" لفئة SAXReader. بمجرد قراءة بيانات ملف XML بنجاح، يمكننا الوصول إلى العقد الفردية لمستند XML باستخدام طريقة "selectSingleNode".

الخطوة 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();

يوضح الكود أدناه استخدام ملف XML في السيلينيوم WebDriver

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();				

	}		
}		

قم بتنزيل برنامج تشغيل الويب Eclipse قسم المشاريع

نبذة عامة

  • مستودع الكائنات هو موقع تخزين مشترك لجميع الكائنات
  • لا يقدم Selenium WebDriver مستودعًا مدمجًا للكائنات بشكل افتراضي
  • يمكنك إنشاء نوعين من مستودع الكائنات في السيلينيوم
    1. مستودع الكائنات باستخدام ملف الخصائص
    2. مستودع الكائنات باستخدام ملف XML
  • ملف الخصائص هو ملف نصي يتم فيه تخزين البيانات على شكل أزواج قيمة المفتاح
  • سيعمل تنسيق ملف XML على تكرار تنسيق HTML الذي تم إنشاء صفحة الويب عليه.