خيارات Chrome والقدرات المطلوبة في Selenium

⚡ ملخص ذكي

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

  • 🌐 خيارات Chrome: يقوم بتخصيص الجلسات باستخدام وسائط مثل بدء التشغيل بأقصى حجم، والتصفح المتخفي، والتشغيل بدون واجهة رسومية.
  • ⚙️ القدرات المطلوبة: يحدد اسم المتصفح، والمنصة، والإصدار، وقبول شهادة SSL.
  • 🧩 الامتدادات: قم بتحميل ملف CRX من خلال التشغيل الآلي بدلاً من تثبيته يدويًا.
  • 🇧🇷 متخفي وبلا رأس: يمكن تشغيل التعليمات البرمجية القابلة لإعادة الاستخدام في جلسات خاصة أو في الخلفية لخطوط أنابيب التكامل المستمر.
  • 🖥️ Selenium جريد: تتيح هذه الإمكانيات تنفيذ الاختبارات الموزعة عبر مختلف المتصفحات.
  • ⚠️ Selenium ملاحظة 4: تم إيقاف استخدام DesiredCapabilities؛ قم بتمرير ChromeOptions مباشرة إلى برنامج التشغيل.

خيارات Chrome والقدرات المطلوبة في 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/ وانقر على زر البداية

Extracملف CRX

الخطوة 2) أدخل إضافة كروم – مانع الإعلانات URL أسفل مربع النص. URL للحصول على برنامج Adblock على متجر Chrome الإلكتروني، تفضل بزيارة https://chrome.google.com/webstore/detail/adblock-%E2%80%94-best-ad-blocker/gighmmpiobklfepjocnamgkkbiglidom

وانقر فوق موافق

Extracملف CRX

الخطوة 3) عند النقر فوق الزر "موافق"، ستتغير تسمية الزر إلى Get.CRX كما هو موضح أدناه. انقر فوق الزر Get .CRX، وسيتم تنزيل ملف CRX المطابق للامتداد

Extracملف CRX

الخطوة 4) احفظ الملف على الجهاز المحلي، وقم بتدوين المسار المحفوظ. الخطوة التالية هي تمرير المسار المحفوظ إلى فئة خيارات Chrome

عينة Code:

  1. سوف تشاهد الإعلانات في https://demo.guru99.com/ على النحو التالي

Extracملف CRX

  1. مع 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 تفسير:

  1. في البداية، تحتاج إلى تعيين المسار إلى ملف chromedriver.exe باستخدام طريقة تعيين الخاصية نظرًا لأنك تستخدم متصفح Chrome للاختبار
  2. تحتاج إلى تعيين المسار إلى ملف CRX لإضافة طريقة الامتدادات
  3. فأنت بحاجة إلى إنشاء كائن من إمكانيات Chrome المرغوبة فيه Selenium فئة وتمريرها إلى مثيل برنامج تشغيل الويب. من Selenium الإصدار 3.8.1، تم إهمال فئة قدرات برنامج التشغيل وتحتاج إلى دمج كائن القدرات مع كائن خيارات Chrome قبل تمرير نفس الوسيطة إلى مُنشئ برنامج تشغيل Chrome
  4. فتح URL - https://demo.guru99.com/test/simple_context_menu.html مع تمكين ملحق Ad Blocker
  5. تكبير وإغلاق المتصفح

NOTE: نحن نمكن AdBlockإيه التمديد على متصفح Chrome من خلال البرنامج النصي الآلي بدلاً من تمكين ملحق Adblocker يدويًا على متصفح Chrome. ملف CRX هو طريقة للوصول إلى ملحق حظر الإعلانات باستخدام البرنامج النصي الآلي

الإخراج:

سيتم تمكين متصفح Chrome باستخدام AdBlockتم تمكين الامتداد على النحو التالي دون أي إعلانات

Extracملف CRX

بالإضافة إلى تحميل الإضافات، تتحكم خيارات 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 تفسير:

  1. في البداية، تحتاج إلى تعيين المسار إلى ملف chromedriver.exe باستخدام طريقة تعيين الخاصية نظرًا لأنك تستخدم متصفح Chrome للاختبار
  2. فأنت بحاجة إلى إنشاء كائن من فئة خيارات Chrome وتمريره إلى مثيل برنامج تشغيل الويب. نظرًا لأننا نريد فتح متصفح Chrome في وضع التصفح المتخفي، فأنت بحاجة إلى تمرير الوسيطة -incognito إلى فئة Chrome Options.
  3. بعد ذلك، قم بإنشاء كائن من فئة القدرات المرغوبة ودمج كائن فئة القدرات المرغوبة مع كائن فئة خيارات Chrome باستخدام طريقة الدمج
  4. تحتاج إلى إنشاء كائن من فئة Chrome Driver وتمرير كائن Chrome Options كوسيطة
  5. وأخيرًا، نحتاج إلى اجتياز URL - https://demo.guru99.com/test/simple_context_menu.html إلى طريقة driver.get
  6. تكبير وإغلاق المتصفح

الإخراج:

سيتم فتح نافذة متصفح Chrome في وضع التصفح المتخفي على النحو التالي

خيارات 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 تفسير:

  1. في البداية، تحتاج إلى تعيين المسار إلى ملف chromedriver.exe باستخدام طريقة تعيين الخاصية نظرًا لأنك تستخدم متصفح Chrome للاختبار
  2. بعد ذلك، قم بإنشاء كائن من فئة خيارات Chrome وقم بتمريره إلى مثيل برنامج تشغيل الويب. نظرًا لأننا نريد فتح متصفح Chrome في وضع بدون رأس، فنحن بحاجة إلى تمرير الوسيطة بدون رأس إلى فئة خيارات Chrome.
  3. قم بإنشاء كائن من فئة DesiredCapabilities Chrome ودمج كائن فئة Desired Capabilities مع كائن فئة Chrome Options باستخدام طريقة الدمج
  4. قم بإنشاء كائن من فئة Chrome Driver وتمرير خيارات Chrome Selenium كائن كحجة
  5. وأخيرًا، نحتاج إلى اجتياز URL - https://demo.guru99.com/ إلى طريقة driver.get
  6. اطبع عنوان الصفحة وأغلق المتصفح

الناتج

لن يكون المتصفح مرئيًا للكود أعلاه حيث سيعمل Chrome في وضع Headless. سيتم جلب عنوان الصفحة وعرضه كما هو موضح أدناه.

خيارات Chrome لمتصفح Chrome بدون رأس

الأسئلة الشائعة

نعم. Selenium تم إيقاف استخدام DesiredCapabilities الأربعة لصالح فئات خيارات المتصفح مثل ChromeOptions. Selenium 3. قمت بدمجهم؛ في Selenium 4- تقوم بتمرير خيارات ChromeOptions مباشرة إلى برنامج التشغيل.

استخدم الدالة addArguments مع عدة خيارات، على سبيل المثال options.addArguments مع start-maximized و incognito. يمكنك أيضًا ربط عدة استدعاءات متتالية. كل خيار يُخصّص طريقة بدء جلسة Chrome.

تُمرر الدالة addArguments خيارات سطر الأوامر مثل الوضع الخفي أو الوضع غير المرئي إلى متصفح Chrome. بينما تقوم الدالة addExtensions بتحميل ملف امتداد .crx مُجمّع في الجلسة. تُخصّص كلتا الدالتين سلوك المتصفح، لكنهما تخدمان أغراضًا مختلفة.

نعم. تُساعد برامج الذكاء الاصطناعي المساعدة، مثل Copilot، في إنشاء إعدادات ChromeOptions والقدرات، واقتراح أسماء الوسائط، وشرح واجهات برمجة التطبيقات المهملة. راجع المخرجات دائمًا، لأن أسماء العلامات و Selenium تتغير الإصدارات بشكل متكرر.

تقوم أدوات الذكاء الاصطناعي ذاتية الإصلاح بتحديث الوسائط تلقائيًا، واكتشاف العلامات غير المستقرة، واقتراح بدائل مستقرة بعد ترقيات متصفح Chrome. كما أنها تقلل من الصيانة اللازمة لتشغيل التطبيقات بدون واجهة رسومية، وتعالج عدم تطابق الإمكانيات بين بيئات التكامل المستمر.

نعم. تعمل خيارات Chrome مع RemoteWebDriver لتنفيذ الشبكة. يمكنك ربط الخيارات بالجلسة البعيدة، مما يسمح بتشغيل نفس التكوين عبر الأجهزة والمتصفحات الموزعة.

هذا يعني عادةً أن إصداري ChromeDriver ومتصفح Chrome غير متطابقين. قم بتثبيت ChromeDriver متوافق، أو استخدم Selenium مدير في Selenium 4- لحل مشكلة برنامج التشغيل تلقائيًا.

استخدم خيارًا تجريبيًا: خريطة تفضيلات مع تمرير download.default_directory عبر setExperimentalOption. يقوم Chrome بعد ذلك بحفظ الملفات في هذا المجلد تلقائيًا أثناء الاختبارات الآلية.

تلخيص هذه التدوينة بـ: