Selenium الامتدادات الأساسية (User-Extensions.js)
⚡ ملخص ذكي
Selenium تضيف الإضافات الأساسية، والتي تسمى أيضًا إضافات المستخدم، إجراءات مخصصة، وأدوات وصول، واستراتيجيات تحديد المواقع إلى Selenium عن طريق ربط بيئة التطوير المتكاملة Javaوظائف البرمجة النصية لـ Selenium وكائنات النموذج الأولي لـ PageBot عند بدء تشغيل بيئة التطوير المتكاملة (IDE).
Selenium الامتدادات الأساسية
لفهم الامتدادات، دعونا أولاً نفهم الركائز الثلاث لـ Selenium IDE. كل أمر تقوم بتسجيله أو كتابته في بيئة التطوير المتكاملة ينتمي إلى إحدى الفئات الثلاث أدناه، وتوضح كل لقطة شاشة كيف تظهر تلك الفئة في قائمة أوامر بيئة التطوير المتكاملة.
- عمل: ما هي العملية التي تقوم بتنفيذها على شاشة واجهة المستخدم؟
- الوصول / التأكيد: ما هي عملية التحقق التي تقوم بها على البيانات التي تحصل عليها من واجهة المستخدم؟
- استراتيجية تحديد الموقع: كيفية العثور على العنصر في واجهة المستخدم.
Selenium يأتي برنامج IDE مزودًا بمكتبة ناضجة تحتوي بالفعل على الكثير من الإجراءات، وأدوات الوصول، والتأكيدات، واستراتيجيات تحديد المواقع.
لكن في بعض الأحيان، يحتاج المشروع إلى وظائف غير موجودة في تلك المكتبة. في هذه الحالة، يمكنك توسيع المكتبة بإضافة ملحق مخصص خاص بك. تُسمى هذه الملحقات المخصصة بـ ملحق المستخدم.
على سبيل المثال، لنفترض أنك تحتاج إلى إجراء لتحويل النص إلى أحرف كبيرة قبل إضافته إلى عنصر ويب. لا يوجد مثل هذا الإجراء في المكتبة الافتراضية، لذا عليك إنشاء إضافة مستخدم خاصة بك. في هذا الدرس، ستتعلم كيفية إنشاء إضافة مستخدم لتحويل النص إلى أحرف كبيرة.
⚠️ قبل أن تبدأ: ينتمي سير العمل الموصوف هنا إلى Selenium كور والأصلي Firefox-توصيل في Selenium IDE. Selenium تم إيقاف دعم Core، وتم إسقاط دعم إضافات المستخدم من Selenium برطمانات في Selenium 3. تم الحفاظ على الخطوات والتعليمات البرمجية أدناه لأن عددًا كبيرًا من مجموعات Selenese القديمة لا تزال تعتمد عليها؛ وسيتم وصف البديل الحديث لاحقًا في هذه المقالة.
متطلبات إنشاء Selenium إضافة المستخدم
لإنشاء ملحق مستخدم لـ Selenium بيئة التطوير المتكاملة (IDE)، أنت بحاجة إلى المفاهيم الأساسية لـ Javaسيناريو وعلى وجه الخصوص، Javaكائن النموذج الأولي للبرنامج النصي. يوضح الرسم التخطيطي أدناه كائنَي النموذج الأولي اللذين يرتبط بهما ملحق المستخدم.
لإنشاء ملحق المستخدم الخاص بك، اكتب Javaقم بكتابة طرق البرمجة النصية وأضفها إلى Selenium النموذج الأولي للكائن وإلى النموذج الأولي لكائن PageBot.
كيفية Selenium بيئة التطوير المتكاملة تتعرف على إضافة المستخدم
بعد إضافة ملحق المستخدم إلى Selenium بيئة التطوير المتكاملة (IDE) ويتم تشغيلها، كل وظيفة مسجلة عليها Javaتم تحميل نماذج البرامج النصية، و Selenium يتعرف برنامج IDE على كل أمر من خلال اسمه. ولهذا السبب، فإن بادئات التسمية في القسم التالي ليست خيارًا أسلوبيًا، بل هي الطريقة التي يصنف بها برنامج IDE الأمر الذي تقوم به.
كيفية إنشاء ملحق مستخدم
الخطوة 1) العمل – تبدأ جميع الإجراءات بـ doإذا كان الإجراء يحول النص إلى أحرف كبيرة، فسيكون اسمه doTextUpperCaseعند إضافة طريقة الإجراء هذه إلى Selenium تقوم بيئة التطوير المتكاملة (IDE) نفسها بإنشاء طريقة انتظار مطابقة، لذلك doTextUpperCase كما ينتج وظيفة الانتظار textUpperCaseAndWaitيمكن للطريقة أن تقبل معلَمين.
مثال: إجراء نص بأحرف كبيرة
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); };
الخطوة الثانية) الوصول / التأكيد – جميع المستخدمين المسجلين في Selenium تُسبق نماذج الكائنات بـ دولار فقط واحصل على خصم XNUMX% على جميع or isعلى سبيل المثال، getValueFromCompoundTable أو isValueFromCompoundTable. يمكن لدالة الوصول قبول مُعاملين، أحدهما للهدف والآخر لحقل القيمة في حالة الاختبار. تُظهر لقطة الشاشة أدناه كيف تظهر هذه البادئات بعد تحميل الامتداد.
لكل مستخدم، Selenium تقوم بيئة التطوير المتكاملة (IDE) بإنشاء وظائف التحقق المقابلة مسبوقة بـ تحقق من و يجزمبالإضافة إلى دالة انتظار مسبوقة بـ انتظر.
مثال: لأدوات الوصول إلى النصوص ذات الأحرف الكبيرة
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) استراتيجية تحديد الموقع – إذا كنت ترغب في إنشاء دالة خاصة بك لتحديد موقع عنصر، فقم بتوسيع نموذج PageBot الأولي بدالة مسبوقة بـ تحديد موقع العنصر بواسطةيأخذ هذا الأمر معلَمين: سلسلة تحديد الموقع، والمستند الذي يجب البحث فيه عن العنصر.
مثال: لمحدد موقع النص بالأحرف الكبيرة
// 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; };
احفظ جميع الوظائف الثلاث في ملف واحد باسم ملف user-extensions.jsالملف عادي Javaالنص البرمجي، لذا فإن أي محرر نصوص كافٍ.
كيفية استخدام الامتداد الأساسي الذي تم إنشاؤه حديثًا
تحميل الملف مهمة من أربع خطوات في النسخة الأصلية Firefox-plugin IDE. كل لقطة شاشة أدناه تتوافق مع الخطوة المرقمة بجانبها.
- انتقل إلى البرنامج المساعد في التأليف Selenium بيئة التطوير المتكاملة (IDE) وانقر خيارات -> خيارات…
- في خانة رمز الخصم، أدخل TABBYDAY. General القسم، حدد موقع الملف الذي تم إنشاؤه حديثًا Selenium امتداد أساسي.
- انقر OK وإعادة التشغيل Selenium IDE
- ستجد الامتداد في قائمة الأوامر.
Selenium الإضافات الأساسية مقابل Selenium إضافات بيئة التطوير المتكاملة
يتم استخدام المصطلحين بشكل متبادل في المواد القديمة، لكنهما يصفان طبقات مختلفة، والتمييز بينهما مهم عندما تقرر أين تضع المنطق المخصص.
| البعد | Selenium التمديد الأساسي | Selenium إضافة بيئة التطوير المتكاملة (IDE) |
|---|---|---|
| ما يمتد إليه | مكتبة أوامر اللغة السيلينية المستخدمة أثناء التشغيل | تطبيق بيئة التطوير المتكاملة نفسه |
| تم تحميل الملف | ملف user-extensions.js | ملف user-extensions-ide.js في بيئة التطوير المتكاملة القديمة، وبيان المكونات الإضافية في بيئة التطوير المتكاملة الحالية |
| الاستخدام النموذجي | إجراءات جديدة، وأدوات وصول، واستراتيجيات تحديد المواقع | عناصر قائمة جديدة، ولوحات، وتنسيقات، وسلوك مسجل البيانات |
| الأشياء التي تم لمسها | Selenium.prototype و PageBot.prototype | واجهات برمجة تطبيقات محرر ومسجل بيئة التطوير المتكاملة |
| يركض خلال | تنفيذ الاختبار | التأليف والتسجيل |
باختصار، يقوم ملحق Core بتغيير ما يمكن أن يفعله الاختبار، بينما يقوم ملحق IDE بتغيير ما يمكن أن تفعله الأداة.
كيف العصر الحديث Selenium بيئة التطوير المتكاملة تستبدل ملف user-extensions.js
استخدم Firefox-توصيل في Selenium توقف برنامج IDE عن العمل عندما Firefox تم الانتقال إلى بنية WebExtensions، وأعيدت كتابة بيئة التطوير المتكاملة (IDE) لتصبح متوافقة مع متصفح Chrome. Firefox وإضافة متصفح إيدج. أدى هذا التعديل إلى إزالة حقل الخيارات الموضح أعلاه، لذا لا يوجد مكان للإشارة إلى ملف user-extensions.js. هناك بديلان مدعومان يغطيان نفس الغرض.
- أمر تنفيذ البرنامج النصي. للاستخدام لمرة واحدة Javaأضف نصًا برمجيًا تنفيذ البرنامج النصي or تنفيذ البرنامج النصي غير المتزامن قم بالدخول مباشرةً إلى الاختبار واحفظ النتيجة في متغير. هذا هو أقرب ما يكون إلى إجراء مخصص صغير.
- إضافة برمجية. لإنشاء أوامر قابلة لإعادة الاستخدام، قم بإنشاء إضافة للمتصفح تُسجّل ملف بيان في بيئة التطوير المتكاملة. يُعرّف ملف البيان كل أمر جديد بمعرّف واسم ونوع اختياري ووثائق، وقد يُعرّف أيضًا مُحدِّدات مواقع جديدة.
يتم تسجيل البيان عن طريق إرسال رسالة إلى ملحق بيئة التطوير المتكاملة، كما هو موضح في الموقع الرسمي Selenium توثيق إضافات بيئة التطوير المتكاملة.
browser.runtime.sendMessage(SIDE_ID, {
uri: "/register",
verb: "post",
payload: {
name: "Selenium IDE plugin",
version: "1.0.0",
commands: [
{ id: "textUpperCase", name: "text upper case" }
]
}
}).catch(console.error);
لا يزال نظام التسمية قائماً بعد عملية الترحيل: لا يزال يتم تعريف أمر الملحق مرة واحدة ثم إعادة استخدامه في كل اختبار، تماماً كما كان الحال مع ملحق Core.
الإضافات والملحقات الشائعة المستخدمة في Selenium IDE
كانت الإضافات المذكورة أدناه الأكثر استخدامًا في بيئة التطوير المتكاملة القديمة. وقد تم دمج العديد منها، مثل التحكم في التدفق والتقاط لقطة شاشة عند الفشل، في بيئة التطوير المتكاملة الحالية أو أصبحت متاحة كإضافات مدعومة.
| الاسم | الهدف |
|---|---|
| المفضلة | لتمييز مجموعة اختبارات كمفضلة وتنفيذها بنقرة واحدة |
| فليكس بايلوت X | للأتمتة القائمة على فليكس |
| فليكس مونكيوم | للتسجيل والتشغيل المستند إلى Adobe Flex تجريب in Selenium IDE |
| ملف التسجيل | لحفظ السجلات في ملف |
| التحكم في التدفق | للتحكم في تدفق تنفيذ الاختبار |
| تسليط الضوء على العناصر | لتسليط الضوء على عنصر تحكم الويب |
| الانتظار الضمني | انتظار عنصر ما لفترة زمنية محددة |
| لقطة الشاشة عند الفشل | التقط لقطة شاشة عند الفشل |
| نتائج الإختبار | حفظ حالة اختبار النتيجة لمجموعة اختبار بنقرة واحدة |
القديم Seleniumلم تعد صفحة التنزيل عالية الجودة التي كانت تستضيف هذه الملفات موجودة. يتم توزيع الإضافات الحالية وبيئة التطوير المتكاملة نفسها من... Selenium موقع مشروع بيئة التطوير المتكاملة ومن متصفح كروم، Firefox ومتاجر إضافات Edge.
تحميل Selenium الامتداد الأساسي المستخدم في هذا البرنامج التعليمي









