الإمكانات هي خيارات يمكنك استخدامها لتخصيص جلسة ChromeDriver وضبطها. توثّق هذه الصفحة جميع الإمكانات المتوافقة مع ChromeDriver وكيفية استخدامها.
توفّر واجهات برمجة التطبيقات الخاصة بلغة WebDriver طرقًا لنقل الإمكانات إلى ChromeDriver. تختلف الآلية الدقيقة حسب اللغة، ولكن معظم اللغات تستخدم إحدى الآليتين التاليتَين أو كلتيهما:
- استخدِم فئة
ChromeOptions
. تتوفّر هذه الميزة في Java وPython وما إلى ذلك. - استخدِم فئة
DesiredCapabilities
. تتيح لغة Python وRuby وغيرها من اللغات استخدام هذه الميزة. وعلى الرغم من توفّرها أيضًا في Java، إلا أنّ استخدامها في Java قد تم إيقافه نهائيًا.
استخدام فئة ChromeOptions
يمكنك إنشاء مثيل من ChromeOptions
، الذي يتضمّن طُرقًا ملائمة لضبط الإمكانات الخاصة بخدمة ChromeDriver. يمكنك بعد ذلك تمرير ChromeOptions
العنصر إلى منشئ ChromeDriver:
ChromeOptions options = new ChromeOptions();
options.addExtensions(new File("/path/to/extension.crx"));
ChromeDriver driver = new ChromeDriver(options);
منذ الإصدار 3.6.0 من Selenium، تُنفِّذ فئة ChromeOptions
في Java أيضًا
واجهة Capabilities
، ما يتيح لك تحديد ميزات WebDriver
أخرى غير محصورة بـ ChromeDriver.
ChromeOptions options = new ChromeOptions();
// Add the WebDriver proxy capability.
Proxy proxy = new Proxy();
proxy.setHttpProxy("myhttpproxy:3337");
options.setCapability("proxy", proxy);
// Add a ChromeDriver-specific capability.
options.addExtensions(new File("/path/to/extension.crx"));
ChromeDriver driver = new ChromeDriver(options);
استخدام DesiredCapabilities
لاستخدام DesiredCapabilities
، عليك معرفة اسم الميزة و
نوع القيمة التي تأخذها. يمكنك الاطّلاع على القائمة الكاملة.
Python
caps = webdriver.DesiredCapabilities.CHROME.copy()
caps['acceptInsecureCerts'] = True
driver = webdriver.Chrome(desired_capabilities=caps)
Ruby
caps = Selenium::WebDriver::Remote::Capabilities.chrome(
"goog:chromeOptions" => {"args" => [ "window-size=1000,800" ]})
driver = Selenium::WebDriver.for :chrome, desired_capabilities: caps
حالات الاستخدام الشائعة
استخدام ملف شخصي مخصّص
ينشئ ChromeDriver تلقائيًا ملفًا شخصيًا مؤقتًا جديدًا لكل جلسة. قد تحتاج إلى ضبط إعدادات مفضّلة خاصة أو استخدام ملف شخصي مخصّص فقط، والذي يُعرف أيضًا باسم دليل بيانات المستخدم.
في حال استخدام الملف الشخصي المؤقت، يمكنك استخدام ميزة chrome.prefs
لتحديد الإعدادات المفضّلة لتطبيقها بعد بدء Chrome. بالنسبة إلى الملفات الشخصية المخصّصة، يمكنك
استخدام مفتاح التبديل user-data-dir
في سطر أوامر Chrome لإعلام Chrome بالملف الشخصي الذي
يجب استخدامه:
ChromeOptions options = new ChromeOptions();
options.addArguments("user-data-dir=/path/to/your/custom/profile");
يمكنك إنشاء ملفك الشخصي المخصّص من خلال تشغيل Chrome على سطر الأوامر أو
باستخدام ChromeDriver، باستخدام مفتاح التبديل user-data-dir
الذي تم ضبطه على دليل جديد.
إذا لم يكن المسار متوفّرًا، ينشئ Chrome ملفًا شخصيًا جديدًا في
الموقع المحدّد. يمكنك بعد ذلك تعديل إعدادات الملف الشخصي، ويمكن أن يستخدم ChromeDriverملف التعريف في المستقبل. افتح chrome://version
في المتصفّح لمعرفة نوع
الملف الشخصي الذي يستخدمه Chrome.
تشغيل Chrome في وضع ملء الشاشة
ابدأ Chrome في وضع ملء الشاشة باستخدام مفتاح التبديل start-maximized
:
ChromeOptions options = new ChromeOptions();
options.addArguments("start-maximized");
استخدام ملف قابل للتنفيذ في Chrome في موقع غير عادي
ChromeOptions options = new ChromeOptions();
options.setBinary("/path/to/other/chrome/binary");
حظر نوافذ الحوار
يضبط ChromeDriver متصفّح Chrome تلقائيًا للسماح بالنوافذ المنبثقة. إذا أردت حظر النوافذ المنبثقة واستعادة السلوك العادي لمتصفّح Chrome عندما لا يتم التحكّم فيه من خلال ChromeDriver، اتّبِع الخطوات التالية:
ChromeOptions options = new ChromeOptions();
options.setExperimentalOption("excludeSwitches",
Arrays.asList("disable-popup-blocking"));
تعيين دليل التنزيل
يمكن استخدام الرمز التالي لضبط Chrome لتنزيل الملفات إلى دليل معيّن. ومع ذلك، هناك عدة تحذيرات يجب أخذها بعين الاعتبار:
- لا يسمح Chrome باستخدام أدلة معيّنة للتنزيل. وعلى وجه الخصوص، لا يمكنك استخدام مجلد سطح المكتب كدليل التنزيل. في نظام التشغيل Linux، لا يمكنك استخدام الدليل الرئيسي للتنزيل. إنّ القائمة الدقيقة للدلائل المحظورة قد تخضع للتغيير، لذا ننصحك باستخدام دليل فريد ليس له معنى خاص للنظام.
- لا ينتظر ChromeDriver تلقائيًا اكتمال عملية التنزيل. إذا تم استدعاء دالة
driver.quit()
مبكرًا جدًا، قد يتم إنهاء Chrome قبل اكتمال عملية التنزيل. - للحصول على أفضل النتائج، استخدِم المسارات الكاملة، لأنّ المسارات النسبية لا تعمل دائمًا.
- على نظام التشغيل Windows، استخدِم
\` as path separators.
/` لأنّه غير موثوق به على هذا النظام.
ChromeOptions options = new ChromeOptions();
Map<String, Object> prefs = new HashMap<String, Object>();
prefs.put("download.default_directory", "/directory/path");
options.setExperimentalOption("prefs", prefs);
الإمكانات المعترف بها
اطّلِع على مستندات Selenium ومعيار W3C WebDriver للتعرّف على الوظائف المعيارية التي يقبلها ChromeDriver. في ما يلي قائمة بالميزات الخاصة بمتصفّح Chrome.
عنصر ChromeOptions
يتم عرض معظم الإمكانات الخاصة بمتصفّح Chrome من خلال عنصر ChromeOptions
. في بعض اللغات، يتم تنفيذها من خلال فئة ChromeOptions
. في
اللغات الأخرى، يتم تخزينها ضمن قاموس goog:chromeOptions
في
الميزات المحدّدة.
عنصر perfLoggingPrefs
يتضمّن قاموس perfLoggingPrefs
التنسيق التالي. جميع المفاتيح اختيارية:
الإمكانات التي تم إرجاعها
في ما يلي قائمة بجميع الإمكانات المعروضة والمرتبطة بمتصفّح Chrome، أي النتائج التي يعرضها ChromeDriver عند إنشاء جلسة جديدة.