الإمكانات هي خيارات يمكنك استخدامها لتخصيص جلسة 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
، يجب معرفة اسم الإمكانية ونوع القيمة التي تأخذها. يمكنك الاطّلاع على القائمة الكاملة هنا.
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 إلى أقصى حدّ
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.check() في وقت قريب جدًا، قد يتم إنهاء Chrome قبل انتهاء عملية التنزيل.
- لا تعمل المسارات النسبية في جميع الأحيان. للحصول على أفضل نتيجة، استخدِم المسار الكامل بدلاً من ذلك.
- في نظام التشغيل Windows، يمكنك استخدام "" كفواصل للمسارات. استخدام "/" ليس موثوقًا به على نظام التشغيل Windows.
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 على التنسيق التالي (وتكون جميع المفاتيح اختيارية):
الاسم | Type | القيمة التلقائية | الوصف |
---|---|---|---|
enableNetwork
|
boolean | صحيح | ما إذا كان سيتم جمع الأحداث من نطاق الشبكة أم لا. |
enablePage
|
boolean | صحيح | ما إذا كنت تريد جمع الأحداث من نطاق الصفحة أم لا. |
traceCategories
|
سلسلة | (فارغة) | سلسلة مفصولة بفواصل من فئات التتبُّع في Chrome يجب جمع أحداث التتبُّع لها. تؤدي السلسلة الفارغة أو غير المحدّدة إلى إيقاف التتبّع. |
bufferUsageReportingInterval
|
عدد صحيح موجب | 1,000 | العدد المطلوب بالمللي ثانية بين أحداث استخدام المخزن المؤقت لتتبّع أدوات مطوّري البرامج في أدوات مطوّري البرامج على سبيل المثال، إذا كانت القيمة 1000، ستبلغ "أدوات مطوّري البرامج" مرة كل ثانية عن مدى امتلاء المخزن المؤقت للتتبّع. وإذا أشار تقرير إلى أنّ نسبة استخدام المخزن المؤقت تبلغ %100، سيتم إصدار تحذير. |
الإمكانات التي تم إرجاعها
وهذه قائمة بجميع الإمكانات المعروضة الخاصة بمتصفِّح Chrome. (أي ما يعرضه ChromeDriver عند إنشاء جلسة جديدة)
الاسم | النوع | الوصف |
---|---|---|
chrome.chromedriverVersion
|
سلسلة | إصدار ChromeDriver |
userDataDir
|
سلسلة | إلى دليل بيانات المستخدم الذي يستخدمه Chrome. ملاحظة: هذا في قاموس "chrome" |