مستودع الكائنات في Selenium
⚡ ملخص ذكي
مستودع الكائنات في Selenium يُركّز هذا الأسلوب مُحدِّدات العناصر في ملف خارجي واحد، مما يفصلها عن نصوص الاختبار. يُحسِّن هذا الأسلوب الصيانة ويُمكِّن المختبرين من تحديث المُحدِّدات في مكان واحد بدلاً من تعديل العديد من حالات الاختبار.

ما هو مستودع الكائنات؟
مستودع الكائنات هو موقع تخزين مشترك لجميع الكائنات. في Selenium في سياق WebDriver، ستكون الكائنات عادةً هي محددات المواقع المستخدمة لتحديد عناصر الويب بشكل فريد.
تتمثل الميزة الرئيسية لاستخدام مستودع الكائنات في فصل الكائنات عن حالات الاختبار. فإذا تغيرت قيمة محدد موقع أحد عناصر الويب، يكفي تعديل مستودع الكائنات فقط، بدلاً من إجراء تغييرات في جميع حالات الاختبار التي استُخدم فيها محدد الموقع. كما أن صيانة مستودع الكائنات تزيد من مرونة تطبيق إطار العمل.
أنواع مستودعات الكائنات في Selenium سائق الويب
Selenium لا يوفر WebDriver مستودعًا مدمجًا للكائنات بشكل افتراضي. مع ذلك، يمكن إنشاء مستودعات الكائنات باستخدام أسلوب أزواج المفتاح والقيمة، حيث يشير المفتاح إلى الاسم المُعطى للكائن، وتشير القيمة إلى الخصائص المستخدمة لتعريف الكائن بشكل فريد داخل صفحة الويب.
فيما يلي أنواع مستودعات الكائنات التي يمكن إنشاؤها في Selenium برنامج تشغيل الويب.
- مستودع الكائنات باستخدام ملف الخصائص
- مستودع الكائنات باستخدام ملف XML
Selenium مستودع كائنات برنامج تشغيل الويب باستخدام ملف الخصائص
في هذا النهج، يُعد ملف الخصائص ملفًا نصيًا تُخزَّن فيه البيانات على شكل أزواج مفتاح-قيمة. سيتناول البرنامج التعليمي التالي المواضيع التالية.
الخطوة 1) إنشاء ملف خصائص في Eclipse
- للبدء، يجب إنشاء بنية مشروع جافا الموضحة أدناه في بيئة إكليبس. يمكن أن يكون اسم المشروع واسم الحزمة أي اسمين صالحين.
- انقر بزر الماوس الأيمن على مجلد المشروع الرئيسي وحدد جديد -> أخرى
- في النافذة التالية، حدد عام -> ملف، ثم انقر على زر "التالي".
- أدخل اسم ملف صحيحًا بامتداد ".properties" في نافذة مورد الملف الجديد، ثم انقر على زر "إنهاء".
- يجب عرض ملف باسم 'application.properties' في هيكل المشروع
الخطوة 2) تخزين البيانات في ملف الخصائص
- يتم تخزين البيانات في ملف خصائص على شكل أزواج مفتاح-قيمة، حيث يكون المفتاح فريدًا في جميع أنحاء الملف.
- سنحاول استخدام ملف الخصائص لتحديد عناصر الويب باستخدام قيم المحددات.
- افتح ملف application.properties في Eclipse وتخزين البيانات التالية
MobileTesting=//a[text()='MOBILE TESTING'] EmailTextBox = philadelphia-field-email SignUpButton = philadelphia-field-submit
4) لهذا البرنامج التعليمي، يتم استخدام موقع الويب التجريبي التالي:
https://demo.guru99.com/test/guru99home/إليكم سيناريو الاختبار:
- انقر على رابط اختبار الهاتف المحمول باستخدام XPATH
- العودة
- أدخل البيانات في مربع نص البريد الإلكتروني باستخدام المعرف
- انقر على زر التسجيل باستخدام الهوية
الخطوة 3) قراءة البيانات من ملف الخصائص
- يمكن قراءة البيانات من ملف الخصائص باستخدام فئة الخصائص المضمنة المتوفرة في حزمة java.util.
- في البداية، يجب إنشاء كائن من فئة الخصائص كما يلي
Properties obj = new Properties();
- نحتاج إلى إنشاء كائن من فئة FileInputStream مع مسار ملف الخصائص
FileInputStream objfile = new FileInputStream(System.getProperty("user.dir")+"\\application.properties");
- يمكن قراءة البيانات من ملف الخصائص باستخدام دالة التحميل (load) التي توفرها فئة الخصائص (Properties) في لغة جافا. يوضح الكود التالي كيفية استخدام دالة التحميل.
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("https://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); // Navigate 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 مستودع كائنات WebDriver باستخدام ملف XML
لغة XML هي اختصار لـ Extensible Markup Language (لغة الترميز القابلة للتوسيع). يستخدم ملف XML نموذج كائن المستند (DOM) كبنية أساسية. يُحاكي تنسيق ملف XML تنسيق HTML الذي تُبنى عليه صفحة الويب. فيما يلي قائمة بالمواضيع التي سيتم تغطيتها.
- إنشاء ملف XML في Eclipse
- تخزين البيانات في ملف XML
- قراءة البيانات من ملف XML
- استخدام ملف XML في البرامج النصية للاختبار
الخطوة 1) إنشاء ملف XML في Eclipse
- يجب إنشاء هيكل مشروع Java أدناه Eclipse.
- انقر بزر الماوس الأيمن على مجلد المشروع، وحدد جديد -> أخرى
- حدد ملف XML الموجود داخل مجلد XML وانقر على زر "التالي".
- أدخل اسم ملف XML صحيحًا وانقر على زر "إنهاء".
- سيتم إضافة ملف XML إلى مجلد المشروع كما هو موضح أدناه
الخطوة 2) تخزين البيانات في ملف XML
يمكن تخزين البيانات في ملف XML بصيغة نموذج كائن المستند (DOM). ولتبسيط الأمر، يمكننا استخدام سيناريو الاختبار التالي كمثال.
- انقر على رابط اختبار الهاتف المحمول باستخدام XPATH
- العودة إلى الصفحة الرئيسية
- أدخل البيانات في مربع نص البريد الإلكتروني باستخدام المعرف
- انقر على زر التسجيل باستخدام الهوية
فيما يلي تنسيق ملف XML المطلوب استخدامه.
<menu> <mobiletesting>//a[text()='MOBILE TESTING']</mobiletesting> <email> philadelphia-field-email</email> <signup> philadelphia-field-submit </signup> </menu>
قم بتخزين كود XML أعلاه في property.xml
في علامة تبويب التصميم سترى
الخطوة 3) قراءة البيانات من ملف XML
١. يمكن قراءة البيانات من ملف XML باستخدام فئة '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. في البداية، نحتاج إلى إنشاء كائن ملف وتمريره كمعامل إلى دالة "read" الخاصة بفئة SAXReader. بمجرد قراءة بيانات ملف XML بنجاح، يمكننا الوصول إلى عقد فردية من مستند XML باستخدام دالة "selectSingleNode".
الخطوة 4) استخدام ملف 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 في Selenium 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("https://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 مشروع













