الإمكانات هي خيارات يمكنك استخدامها لتخصيص جلسة 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)
روبي
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.الصحيح() في وقت قريب جدًا، قد يتم إنهاء 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);
الإمكانات المعروفة
يُرجى الاطّلاع على مستندات Seenium ومعيار W3C WebDriver للتعرّف على الطريقة العادية. الإمكانات المقبولة في ChromeDriver. ندرج هنا فقط الملفات الخاصة بمتصفِّح Chrome والإمكانات.
عنصر واحد (ChromeOptions
)
يتم الكشف عن معظم الإمكانات الخاصة بـ Chrome من خلال ChromeOptions
الخاص بك. في بعض اللغات، تنفذ الفئة ChromeOptions
ذلك. ضِمن
لغات أخرى، يتم تخزينها ضمن قاموس goog:chromeOptions
في
الإمكانات المطلوبة.
عنصر واحد (perfLoggingPrefs
)
يحتوي قاموس perfLoggingPrefs على التنسيق التالي (جميع المفاتيح اختيارية):
الاسم | النوع | القيمة التلقائية | الوصف |
---|---|---|---|
enableNetwork
|
منطقي | صحيح | تحديد ما إذا كان سيتم جمع الأحداث من نطاق الشبكة أم لا. |
enablePage
|
منطقي | صحيح | تحديد ما إذا كان سيتم جمع الأحداث من نطاق الصفحة أم لا. |
traceCategories
|
سلسلة | (فارغ) | سلسلة من فئات تتبُّع Chrome مفصولة بفواصل والتي يجب جمع أحداث التتبُّع لها. تعمل السلسلة الفارغة أو غير المحدَّدة على إيقاف التتبُّع. |
bufferUsageReportingInterval
|
عدد صحيح موجب | 1000 | عدد المللي ثانية المطلوب بين أحداث استخدام المخزن المؤقت في "أدوات مطوّري البرامج" على سبيل المثال، إذا كان 1000، ستبلغ "أدوات مطوري البرامج" مرة واحدة في الثانية عن مدى امتلاء المخزن المؤقت للتتبُّع. إذا أشار تقرير إلى أنّ نسبة استخدام المخزن المؤقت بنسبة 100%، سيتم إصدار تحذير. |
الإمكانات التي تم إرجاعها
هذه قائمة بجميع الإمكانات الخاصة بـ Chrome التي تم عرضها. (أي، ما يعرضه ChromeDriver عند إنشاء جلسة جديدة)
الاسم | النوع | الوصف |
---|---|---|
chrome.chromedriverVersion
|
سلسلة | إصدار ChromeDriver |
userDataDir
|
سلسلة | المسار إلى دليل بيانات المستخدم الذي يستخدمه Chrome. ملاحظة، هذا داخل "chrome" القاموس |