القدرات المطلوبة في Selenium ويب درايفر
⚡ ملخص ذكي
القدرات المطلوبة هي Selenium فئة تخزن إعدادات المتصفح والمنصة والجهاز كأزواج مفتاح-قيمة، مما يسمح لمجموعة اختبار واحدة باستهداف العديد من البيئات عبر Selenium الشبكات، وشبكات الحوسبة السحابية، والأتمتة المتنقلة.
ما هي القدرات المطلوبة؟
القدرات المطلوبة هي فئة في Selenium يستخدم لتعيين خصائص المتصفحات لإجراء اختبار عبر المتصفح لتطبيقات الويب. يقوم بتخزين الإمكانات كأزواج ذات قيمة أساسية ويتم استخدام هذه الإمكانات لتعيين خصائص المتصفح مثل اسم المتصفح وإصدار المتصفح ومسار برنامج تشغيل المتصفح في النظام وما إلى ذلك لتحديد سلوك المتصفح في وقت التشغيل.
- يمكن أيضًا استخدام الإمكانية المطلوبة لتكوين مثيل برنامج التشغيل الخاص بـ Selenium برنامج تشغيل الويب.
- يمكننا تكوين مثيل برنامج التشغيل مثل FirefoxDriver وChromeDriver وInternetExplorerDriver باستخدام الإمكانات المطلوبة.
ملاحظة حول الإصدار: Selenium 4 يحل محل فئات خيارات المتصفح DesiredCapabilities — ChromeOptions، Firefoxالخيارات، وخيارات Edge، وخيارات InternetExplorer. تحافظ الأمثلة أدناه على الصيغة الأصلية.
لماذا نحتاج إلى القدرات المرغوبة؟
القدرات المطلوبة ضرورية لأن كل الاختبار يجب تنفيذ السيناريو في بعض بيئة الاختبار المحددة. يمكن أن تكون بيئة الاختبار عبارة عن متصفح ويب، الهاتف الجهاز، محاكي الهاتف المحمول، محاكي الهاتف المحمول، إلخ. تساعدنا فئة القدرات المطلوبة في إخبار WebDriver بالبيئة التي سنستخدمها في نص الاختبار الخاص بنا.
يمكن استخدام طريقة setCapability الخاصة بفئة DesiredCapabilities، والتي سيتم شرحها في الجزء اللاحق من هذه الصفحة، في Selenium الشبكة. تُستخدم لأداء التنفيذ الموازي على تكوينات مختلفة للآلة.
مثال: الشبكة (الموضحة أدناه).
يتم استخدامه لتعيين خصائص المتصفح (مثل Chrome، IE)، واسم النظام الأساسي (مثل Linux، Windows) التي تُستخدم أثناء تنفيذ حالة الاختبار.
في حالة أتمتة الهاتف المحمول، حيث نقوم بإجراء الاختبارات على أنواع مختلفة من الأجهزة المحمولة، فإن منصة الهاتف المحمول (على سبيل المثال، iOS، Android) إصدار النظام الأساسي (على سبيل المثال 3.x، 4.x بوصة Android) يمكن ضبطها.
يوضح مثال المحاكي أدناه مجموعة النظام الأساسي وهي نظام أندرويد ومجموعة إصدار النظام الأساسي وهي نظام آيس كريم ساندويتش (4.x).
تكون القدرات المرغوبة أكثر فائدة في حالات مثل:
- في أتمتة تطبيقات الهاتف المحمول، حيث يمكن ضبط خصائص المتصفح وخصائص الجهاز.
- In Selenium نستخدم Grid عندما نريد تشغيل حالات الاختبار على متصفح مختلف بأنظمة تشغيل وإصدارات مختلفة.
أنواع طرق القدرات المرغوبة
سنرى هنا طرق القدرات المطلوبة المختلفة وكيفية استخدام إحداها، وهي طريقة setCapability().
#1) اسم المتصفح ()
public java.lang.String getBrowserName()
#2) اسم المتصفح ()
public void setBrowserName(java.lang.String browserName)
#3) الحصول على النسخة ()
public java.lang.String getVersion()
#4) سيتفيرسيون ()
public void setVersion(java.lang.String version)
#5) الحصول على المنصة ()
public Platform getPlatform()
#6) سيتبلاتفورم ()
public Platform setPlatform()
#7) طريقة getCapability()
يمكن استخدام طريقة getCapability() لفئة DesiredCapabilities للحصول على الإمكانية المستخدمة حاليًا في النظام.
public java.lang.Object getCapability(java.lang.String capabilityName)
#8) طريقة setCapability()
تُستخدم دالة setCapability() الخاصة بفئة Desired Capabilities لتعيين خصائص بيئة الاختبار مثل اسم الجهاز، واسم نظام التشغيل وإصداره، واسم المتصفح وإصداره، والمسار المطلق للتطبيق قيد الاختبار (ملف .apk الخاص به). Android التطبيق قيد الاختبار)، نشاط التطبيق (في Android) و appPackage (في Java).
"طريقة setCapability" في Java لديه الإعلانات التالية:
setCapability : public void setCapability(java.lang.String capabilityName,boolean value)
setCapability :public void setCapability(java.lang.String capabilityName,java.lang.String value)
setCapability :public void setCapability(java.lang.String capabilityName,Platform value)
setCapability :public void setCapability(java.lang.String key,java.lang.Object value)
تعيين القدرة في Selenium مثال
لنفترض مثالاً حيث نريد تشغيل حالة الاختبار الخاصة بنا على متصفح إنترنت إكسبلورر لفتح موقع www.gmail.com باستخدام Selenium برنامج تشغيل الويب.
فيما يلي الكود.
import org.openqa.selenium.WebDriver; import org.openqa.selenium.ie.InternetExplorerDriver; public class IEtestforDesiredCapabilities { public static void main(String[] args) { WebDriver driver = new InternetExplorerDriver(); driver.manage().window().maximize(); driver.get("http://gmail.com"); driver.quit(); } }
الآن قم بتشغيل هذا الكود من Eclipse وتحقق من وحدة التحكم.
الإخراج:
سيظهر الخطأ التالي عند تنفيذ الكود أعلاه. يحدث الخطأ لأن مسار برنامج تشغيل المتصفح (IE في هذه الحالة) غير مُحدد. لم يتمكن البرنامج من تحديد موقع المتصفح. Selenium رمز.
The path to the driver executable must be set by the webdriver.ie.driver system property; formore information, see http://code.google.com/p/selenium/wiki/InternetExplorerDriver. The latest version can be downloaded from http://code.google.com/p/selenium/downloads/list Dec 11, 201212:59:43PM org.openqa.selenium.ie.InternetExplorerDriverServer initializeLib WARNING: This method of starting the IE driver is deprecated and will be removed in selenium 2.26. Please download the IEDriverServer.exe from http://code.google.com/p/selenium/downloads/list and ensure that it is in your PATH.
حل:
يتم تقديم حل المشكلة المذكورة أعلاه في قسم التحذير الخاص بالخطأ نفسه.
- قم بتنزيل خادم Internet ExplorerDriver المستقل للإصدار 32 بت أو 64 بت.
- حفظ السائق في مكان مناسب في النظام.
- حدد مسار برنامج التشغيل باستخدام دالة System.setProperty. تُستخدم هذه الدالة لتعيين برنامج تشغيل Internet Explorer باستخدام خاصية webdriver. وتساعد في تحديد موقع ملف برنامج التشغيل القابل للتنفيذ الموجود في موقع النظام. (مثال: "C:\IEDriverLocation\IEDriver.exe")
ملاحظة حول الإصدار: Selenium الإصدار 4.6 والإصدارات الأحدث تقوم بحل مشكلة تعريفات التشغيل تلقائيًا من خلال Selenium مدير النظام، لذا فإن System.setProperty اختياري. الكود الأصلي أدناه لم يتغير.
import org.openqa.selenium.WebDriver; import org.openqa.selenium.ie.InternetExplorerDriver; import org.openqa.selenium.remote.DesiredCapabilities; public class IEtestforDesiredCapabilities { public static void main(String[] args) { //it is used to define IE capability DesiredCapabilities capabilities = DesiredCapabilities.internetExplorer(); capabilities.setCapability(CapabilityType.BROWSER_NAME, "IE"); capabilities.setCapability(InternetExplorerDriver. INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS,true); System.setProperty("webdriver.ie.driver", "C:\\IEDriverServer.exe"); //it is used to initialize the IE driver WebDriver driver = new InternetExplorerDriver(capabilities); driver.manage().window().maximize(); driver.get("http://gmail.com"); driver.quit(); } }
Code التفسير:
في الكود أعلاه ،
- تستورد عبارات الاستيراد الحزم المطلوبة لـ Selenium WebDriver، والحزم المطلوبة لبرنامج تشغيل Internet Explorer، والحزم الخاصة بالإمكانيات المطلوبة.
- يأخذ setCapability القدرات المختلفة كمتغيرات إدخال والتي يستخدمها بعد ذلك برنامج تشغيل الويب لتشغيل التطبيق في البيئة المطلوبة.
- تُستخدم دالة setProperty لتعيين المسار الذي يوجد فيه برنامج التشغيل. ثم يقوم WebDriver بتحديد موقع برنامج التشغيل المطلوب.
- Gmail يتم فتح الموقع الإلكتروني في متصفح إنترنت إكسبلورر باستخدام طريقة "get".
الإخراج:
سيتم تشغيل حالة الاختبار بنجاح على متصفح إنترنت إكسبلورر باستخدام Selenium برنامج تشغيل الويب.


