خيارات Chrome والقدرات المطلوبة في Selenium
⚡ ملخص ذكي
خيارات Chrome والقدرات المطلوبة في Selenium يتحكم WebDriver في كيفية تشغيل متصفح Chrome وسلوكه أثناء الاختبارات الآلية. ويعملان معًا على تهيئة الوسائط والإضافات ومعالجة SSL وإعدادات التوافق بين المتصفحات، مما يجعل عمليات تشغيل الاختبار مرنة وقابلة للتكرار وجاهزة للاستخدام. Selenium تنفيذ الشبكة.
ما هي فئة خيارات Chrome؟
استخدم فئة خيارات Chrome هو مفهوم في Selenium برنامج WebDriver لمعالجة خصائص مختلفة لبرنامج تشغيل Chrome. تُستخدم فئة خيارات Chrome بشكل عام جنبًا إلى جنب مع Desired Capabilities لتخصيص جلسات برنامج تشغيل Chrome. يساعدك على تنفيذ عمليات مختلفة مثل فتح Chrome في الوضع المكبر، وتعطيل الامتدادات الموجودة، وتعطيل النوافذ المنبثقة، وما إلى ذلك.
على سبيل المثال:
يوضح المثال أدناه طريقة لفتح متصفح Chrome في الوضع الأقصى باستخدام فئة ChromeOptions. نحتاج إلى تمرير مثيل لفئة ChromeOptions إلى تهيئة برنامج تشغيل الويب.
ChromeOptions options = new ChromeOptions() options.addArgument("start-maximized"); ChromeDriver driver = new ChromeDriver(options);
فيما يلي قائمة بالوسائط المتاحة والأكثر استخدامًا لفئة ChromeOptions
- البدء إلى الحد الأقصى: يفتح Chrome في وضع التكبير
- التصفح المتخفي: يفتح Chrome في وضع التصفح المتخفي
- بلا رأس: يفتح Chrome في وضع مقطوعة الرأس
- تعطيل الامتدادات: تعطيل الإضافات الموجودة في متصفح Chrome
- تعطيل حظر النوافذ المنبثقة:تعطيل النوافذ المنبثقة المعروضة على متصفح Chrome
- جعل المتصفح الافتراضي: يجعل متصفح Chrome الافتراضي
- الإصدار: يطبع إصدار متصفح Chrome
- تعطيل أشرطة المعلومات: يمنع Chrome من عرض الإشعار "يتم التحكم في Chrome بواسطة برنامج تلقائي".
فئة القدرات المطلوبة
فئة القدرات المطلوبة يستخدم لتعديل خصائص متعددة لبرامج تشغيل الويب. يوفر أزواجًا ذات قيمة أساسية لتغيير الخصائص الفردية لبرامج تشغيل الويب مثل اسم المتصفح ومنصة المتصفح وما إلى ذلك. إحدى الطرق الشائعة لفئة Desired Capabilities هي طريقة setCapability. يتم استخدامه في الغالب مع Selenium الشبكة، حيث يجب تنفيذ نفس حالة الاختبار على متصفحات مختلفة.
على سبيل المثال:
يوضح المثال أدناه طريقة تمكين متصفح Chrome من قبول شهادات SSL على مواقع الويب بشكل افتراضي باستخدام القدرات المرغوبة لفئة Chrome.
// Create an object of desired capabilities class with Chrome driver DesiredCapabilities SSLCertificate = DesiredCapabilities.chrome(); // Set the pre defined capability – ACCEPT_SSL_CERTS value to true SSLCertificate.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true); // Open a new instance of chrome driver with the desired capability WebDriver driver = new ChromeDriver(SSLCertificate);
فيما يلي أنواع القدرات المحددة مسبقًا الأكثر استخدامًا.
| اسم القدرة | الوصف |
|---|---|
| قبول_SSL_CERTS | تخبر هذه الخاصية المتصفح بقبول شهادات SSL بشكل افتراضي |
| PLATFORM_NAME | يتم استخدام هذه الخاصية لتعيين منصة نظام التشغيل المستخدمة للوصول إلى موقع الويب |
| المتصفح_NAME | يتم استخدام هذه الخاصية لتعيين اسم المتصفح لمثيل برنامج تشغيل الويب |
| VERSION | تُستخدم هذه الخاصية لتعيين إصدار المتصفح |
خيارات Chrome لإضافات Adblocker
يمكن التعامل مع ملحق Adblocker الخاص بمتصفح Chrome باستخدام ChromeDriver Options وDesired Capabilities class. فيما يلي الخطوات للوصول إلى AdBlockملحق على متصفح Chrome باستخدام فئة القدرات المرغوبة.
الخطوة 1) AdBlockيجب تثبيت الامتداد على متصفح Chrome قبل استخدام فئة خيارات Chrome
الخطوة 2) Extracملف CRX المقابل لـ AdBlockامتداد er عبر http://crxextractor.com/
الخطوة 3) قم بتمرير مسار ملف CRX الذي تم تنزيله إلى فئة خيارات Chrome
الخطوة 4) قم بإنشاء مثيل لبرنامج تشغيل الويب باستخدام فئة الإمكانات المطلوبة وخيارات Chrome في Selenium موضوع
على سبيل المثال:
يوضح المثال أدناه كيفية تنشيط ملحق حظر الإعلانات على متصفح Chrome باستخدام فئة Chrome Options وDesired Capabilities.
ChromeOptions options = new ChromeOptions(); options.addExtensions(new File("Path to CRX File")); DesiredCapabilities capabilities = new DesiredCapabilities(); capabilities.setCapability(ChromeOptions.CAPABILITY, options); ChromeDriver driver = new ChromeDriver(capabilities);
Extracملف CRX
توضح الخطوات التالية عملية extracتحميل ملف CRX عبر مانع الإعلانات من خلال الموقع الإلكتروني – http://crxextractor.com/
الخطوة 1) انتقل إلى البرنامج المساعد في التأليف http://crxextractor.com/ وانقر على زر البداية
الخطوة 2) أدخل إضافة كروم – مانع الإعلانات URL أسفل مربع النص. URL للحصول على برنامج Adblock على متجر Chrome الإلكتروني، تفضل بزيارة https://chrome.google.com/webstore/detail/adblock-%E2%80%94-best-ad-blocker/gighmmpiobklfepjocnamgkkbiglidom
وانقر فوق موافق
الخطوة 3) عند النقر فوق الزر "موافق"، ستتغير تسمية الزر إلى Get.CRX كما هو موضح أدناه. انقر فوق الزر Get .CRX، وسيتم تنزيل ملف CRX المطابق للامتداد
الخطوة 4) احفظ الملف على الجهاز المحلي، وقم بتدوين المسار المحفوظ. الخطوة التالية هي تمرير المسار المحفوظ إلى فئة خيارات Chrome
عينة Code:
- سوف تشاهد الإعلانات في https://demo.guru99.com/ على النحو التالي
- مع AdBlockيجب تعطيل الإضافة الممكّنة في إعلانات متصفح Chrome
package adblock; import java.io.File; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.chrome.ChromeOptions; import org.openqa.selenium.remote.DesiredCapabilities; public class AdblockDemo { public static void main(String[] args) { System.setProperty("webdriver.chrome.driver","X://chromedriver.exe"); ChromeOptions options = new ChromeOptions(); options.addExtensions(new File("X://extension_3_40_1_0.crx")); DesiredCapabilities capabilities = new DesiredCapabilities(); capabilities.setCapability(ChromeOptions.CAPABILITY, options); options.merge(capabilities); ChromeDriver driver = new ChromeDriver(options); driver.get("https://demo.guru99.com/test/simple_context_menu.html"); driver.manage().window().maximize(); //driver.quit(); } }
Code تفسير:
- في البداية، تحتاج إلى تعيين المسار إلى ملف chromedriver.exe باستخدام طريقة تعيين الخاصية نظرًا لأنك تستخدم متصفح Chrome للاختبار
- تحتاج إلى تعيين المسار إلى ملف CRX لإضافة طريقة الامتدادات
- فأنت بحاجة إلى إنشاء كائن من إمكانيات Chrome المرغوبة فيه Selenium فئة وتمريرها إلى مثيل برنامج تشغيل الويب. من Selenium الإصدار 3.8.1، تم إهمال فئة قدرات برنامج التشغيل وتحتاج إلى دمج كائن القدرات مع كائن خيارات Chrome قبل تمرير نفس الوسيطة إلى مُنشئ برنامج تشغيل Chrome
- فتح URL - https://demo.guru99.com/test/simple_context_menu.html مع تمكين ملحق Ad Blocker
- تكبير وإغلاق المتصفح
NOTE: نحن نمكن AdBlockإيه التمديد على متصفح Chrome من خلال البرنامج النصي الآلي بدلاً من تمكين ملحق Adblocker يدويًا على متصفح Chrome. ملف CRX هو طريقة للوصول إلى ملحق حظر الإعلانات باستخدام البرنامج النصي الآلي
الإخراج:
سيتم تمكين متصفح Chrome باستخدام AdBlockتم تمكين الامتداد على النحو التالي دون أي إعلانات
بالإضافة إلى تحميل الإضافات، تتحكم خيارات Chrome أيضًا في كيفية تشغيل نافذة المتصفح نفسها.
خيارات Chrome لوضع التصفح المتخفي
يمكن استخدام خيارات Chrome لوضع التصفح المتخفي باستخدام الوسيطة المحددة مسبقًا –تستر.
يوجد أدناه نموذج التعليمات البرمجية لإنجاز نفس الشيء.
عينة Code:
package test; import java.io.File; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.chrome.ChromeOptions; import org.openqa.selenium.remote.DesiredCapabilities; public class Incognito{ public static void main(String[] args) { // TODO Auto-generated method stub System.setProperty("webdriver.chrome.driver","X://chromedriver.exe"); ChromeOptions options = new ChromeOptions(); options.addArguments("--incognito"); DesiredCapabilities capabilities = new DesiredCapabilities(); capabilities.setCapability(ChromeOptions.CAPABILITY, options); options.merge(capabilities); ChromeDriver driver = new ChromeDriver(options); driver.get("https://demo.guru99.com/test/simple_context_menu.html"); driver.manage().window().maximize(); //driver.quit(); } }
Code تفسير:
- في البداية، تحتاج إلى تعيين المسار إلى ملف chromedriver.exe باستخدام طريقة تعيين الخاصية نظرًا لأنك تستخدم متصفح Chrome للاختبار
- فأنت بحاجة إلى إنشاء كائن من فئة خيارات Chrome وتمريره إلى مثيل برنامج تشغيل الويب. نظرًا لأننا نريد فتح متصفح Chrome في وضع التصفح المتخفي، فأنت بحاجة إلى تمرير الوسيطة -incognito إلى فئة Chrome Options.
- بعد ذلك، قم بإنشاء كائن من فئة القدرات المرغوبة ودمج كائن فئة القدرات المرغوبة مع كائن فئة خيارات Chrome باستخدام طريقة الدمج
- تحتاج إلى إنشاء كائن من فئة Chrome Driver وتمرير كائن Chrome Options كوسيطة
- وأخيرًا، نحتاج إلى اجتياز URL - https://demo.guru99.com/test/simple_context_menu.html إلى طريقة driver.get
- تكبير وإغلاق المتصفح
الإخراج:
سيتم فتح نافذة متصفح Chrome في وضع التصفح المتخفي على النحو التالي
خيارات Chrome لمتصفح Chrome بدون رأس
يتم تشغيل متصفح Headless في الخلفية. لن تتمكن من رؤية واجهة المستخدم الرسومية للمتصفح أو العمليات التي يتم إجراؤها عليه.
يمكن تحقيق خيارات Chrome لتشغيل متصفح Chrome في الوضع بدون رأس باستخدام الوسائط المحددة مسبقًا -بلا رأس.
نموذج التعليمات البرمجية لإنجاز ذلك مذكور أدناه.
على سبيل المثال:
package test; import java.io.File; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.chrome.ChromeOptions; import org.openqa.selenium.remote.DesiredCapabilities; public class HeadlessModeDemo { public static void main(String[] args) { // TODO Auto-generated method stub System.setProperty("webdriver.chrome.driver","X://chromedriver.exe"); ChromeOptions options = new ChromeOptions(); options.addArguments("--headless"); DesiredCapabilities capabilities = new DesiredCapabilities(); capabilities.setCapability(ChromeOptions.CAPABILITY, options); options.merge(capabilities); ChromeDriver driver = new ChromeDriver(options); driver.get("https://demo.guru99.com/"); driver.manage().window().maximize(); String title = driver.getTitle(); System.out.println("Page Title: " +title); driver.quit(); } }
Code تفسير:
- في البداية، تحتاج إلى تعيين المسار إلى ملف chromedriver.exe باستخدام طريقة تعيين الخاصية نظرًا لأنك تستخدم متصفح Chrome للاختبار
- بعد ذلك، قم بإنشاء كائن من فئة خيارات Chrome وقم بتمريره إلى مثيل برنامج تشغيل الويب. نظرًا لأننا نريد فتح متصفح Chrome في وضع بدون رأس، فنحن بحاجة إلى تمرير الوسيطة بدون رأس إلى فئة خيارات Chrome.
- قم بإنشاء كائن من فئة DesiredCapabilities Chrome ودمج كائن فئة Desired Capabilities مع كائن فئة Chrome Options باستخدام طريقة الدمج
- قم بإنشاء كائن من فئة Chrome Driver وتمرير خيارات Chrome Selenium كائن كحجة
- وأخيرًا، نحتاج إلى اجتياز URL - https://demo.guru99.com/ إلى طريقة driver.get
- اطبع عنوان الصفحة وأغلق المتصفح
الناتج
لن يكون المتصفح مرئيًا للكود أعلاه حيث سيعمل Chrome في وضع Headless. سيتم جلب عنوان الصفحة وعرضه كما هو موضح أدناه.








