التكوين
اعتمادًا على نوع الإعداد (مثل استخدام ارتباطات البروتوكول الأساسية، WebdriverIO كحزمة مستقلة أو اختبار WDIO)، هناك مجموعة مختلفة من الخيارات المتاحة للتحكم في البيئة.
خيارات WebDriver
الخيارات التالية محددة عند استخدام حزمة بروتوكول webdriver:
protocol
البروتوكول المستخدم عند التواصل مع خادم السائق.
النوع: String
الافتراضي: http
hostname
مضيف خادم السائق الخاص بك.
النوع: String
الافتراضي: 0.0.0.0
port
المنفذ الذي يستخدمه خادم السائق الخاص بك.
النوع: Number
الافتراضي: undefined
path
المسار إلى نقطة نهاية خادم السائق.
النوع: String
الافتراضي: /
queryParams
معلمات الاستعلام التي يتم نقلها إلى خادم السائق.
النوع: Object
الافتراضي: undefined
user
اسم المستخدم الخاص بخدمة السحابة الخاصة بك (يعمل فقط لحسابات Sauce Labs، Browserstack، TestingBot أو TestMu AI). إذا تم تعيينه، سيقوم WebdriverIO تلقائيًا بتعيين خيارات الاتصال لك. إذا كنت لا تستخدم مزود سحابة، يمكن استخدام هذا للمصادقة مع أي خلفية WebDriver أخرى.
النوع: String
الافتراضي: undefined
key
مفتاح الوصول لخدمة السحابة الخاصة بك أو المفتاح السري (يعمل فقط لحسابات Sauce Labs، Browserstack، TestingBot أو TestMu AI). إذا تم تعيينه، سيقوم WebdriverIO تلقائيًا بتعيين خيارات الاتصال لك. إذا كنت لا تستخدم مزود سحابة، يمكن استخدام هذا للمصادقة مع أي خلفية WebDriver أخرى.
النوع: String
الافتراضي: undefined
capabilities
يحدد القدرات التي تريد تشغيلها في جلسة WebDriver الخاصة بك. تحقق من بروتوكول WebDriver للمزيد من التفاصيل. إذا كنت تقوم بتشغيل سائق أقدم لا يدعم بروتوكول WebDriver، فستحتاج إلى استخدام قدرات JSONWireProtocol لتشغيل جلسة بنجاح.
بالإضافة إلى القدرات المستندة إلى WebDriver، يمكنك تطبيق خيارات خاصة بالمتصفح والبائع تسمح بتكوين أعمق للمتصفح البعيد أو الجهاز. هذه موثقة في وثائق البائع المقابلة، على سبيل المثال:
goog:chromeOptions: لـ Google Chromemoz:firefoxOptions: لـ Mozilla Firefoxms:edgeOptions: لـ Microsoft Edgesauce:options: لـ Sauce Labsbstack:options: لـ BrowserStackselenoid:options: لـ Selenoid
بالإضافة إلى ذلك، أداة مفيدة هي مكون اختبار آلي من Sauce Labs، والذي يساعدك على إنشاء هذا الكائن بالنقر معًا على القدرات المطلوبة.
النوع: Object
الافتراضي: null
مثال:
{
browserName: 'chrome', // خيارات: `chrome`, `edge`, `firefox`, `safari`
browserVersion: '27.0', // إصدار المتصفح
platformName: 'Windows 10' // منصة نظام التشغيل
}
إذا كنت تقوم بتشغيل اختبارات ويب أو اختبارات أصلية على الأجهزة المحمولة، فإن capabilities تختلف عن بروتوكول WebDriver. راجع وثائق Appium للحصول على مزيد من التفاصيل.
logLevel
مستوى التفصيل في السجلات.
النوع: String
الافتراضي: info
الخيارات: trace | debug | info | warn | error | silent
outputDir
دليل لتخزين جميع ملفات سجل اختبار المشغل (بما في ذلك سجلات المراسل وسجلات wdio). إذا لم يتم تعيينه، فسيتم توجيه جميع السجلات إلى stdout. نظرًا لأن معظم المراسلين مصممة للسجل إلى stdout، يوصى باستخدام هذا الخيار فقط لمراسلين محددين حيث يكون من المنطقي أكثر دفع التقرير إلى ملف (مثل مراسل junit، على سبيل المثال).
عند التشغيل في وضع مستقل، السجل الوحيد الذي يتم إنشاؤه بواسطة WebdriverIO هو سجل wdio.
النوع: String
الافتراضي: null
connectionRetryTimeout
مهلة لأي طلب WebDriver إلى سائق أو شبكة.
النوع: Number
الافتراضي: 120000
connectionRetryCount
العدد الأقصى لإعادة محاولات الطلب إلى خادم Selenium.
النوع: Number
الافتراضي: 3
agent
يسمح لك باستخدام وكيل مخصص http/https/http2 وكيل لإرسال الطلبات.
النوع: Object
الافتراضي:
{
http: new http.Agent({ keepAlive: true }),
https: new https.Agent({ keepAlive: true })
}
headers
حدد رؤوس headers مخصصة لتمريرها في كل طلب WebDriver. إذا كانت شبكة Selenium الخاصة بك تتطلب المصادقة الأساسية، نوصي بتمرير رأس Authorization من خ لال هذا الخيار لمصادقة طلبات WebDriver الخاصة بك، على سبيل المثال:
import { Buffer } from 'buffer';
// قراءة اسم المستخدم وكلمة المرور من متغيرات البيئة
const username = process.env.SELENIUM_GRID_USERNAME;
const password = process.env.SELENIUM_GRID_PASSWORD;
// دمج اسم المستخدم وكلمة المرور بفاصل نقطتان
const credentials = `${username}:${password}`;
// ترميز بيانات الاعتماد باستخدام Base64
const encodedCredentials = Buffer.from(credentials).toString('base64');
export const config: WebdriverIO.Config = {
// ...
headers: {
Authorization: `Basic ${encodedCredentials}`
}
// ...
}
النوع: Object
الافتراضي: {}
transformRequest
دالة تعترض خيارات طلب HTTP قبل إجراء طلب WebDriver
النوع: (RequestOptions) => RequestOptions
الافتراضي: لا شيء
transformResponse
دالة تعترض كائنات استجابة HTTP بعد وصول استجابة WebDriver. يتم تمرير الدالة كائن الاستجابة الأصلي كأول وسيط وRequestOptions المقابلة كثاني وسيط.
النوع: (Response, RequestOptions) => Response
الافتراضي: لا شيء
strictSSL
ما إذا كان لا يتطلب أن تكون شهادة SSL صالحة.
يمكن تعيينها عبر متغيرات بيئية مثل STRICT_SSL أو strict_ssl.
النوع: Boolean
الافتراضي: true
enableDirectConnect
ما إذا كان تمكين ميزة الاتصال المباشر من Appium. لا يفعل شيئًا إذا لم يكن للاستجابة مفاتيح مناسبة أثناء تمكين العلامة.
النوع: Boolean
الافتراضي: true
cacheDir
المسار إلى جذر دليل ذاكرة التخزين المؤقت. يستخدم هذا الدليل لتخزين جميع برامج التشغيل التي يتم تنزيلها عند محاولة بدء جلسة.
النوع: String
الافتراضي: process.env.WEBDRIVER_CACHE_DIR || os.tmpdir()
maskingPatterns
للحصول على سجل أكثر أمانًا، يمكن للتعبيرات العادية المعينة بـ maskingPatterns إخفاء المعلومات الحساسة من السجل.
- تنسيق السلسلة هو تعبير عادي مع أو بدون أعلام (مثل
/.../i) وتفصل بفواصل للتعبيرات المتعددة. - لمزيد من التفاصيل حول أنماط التقنيع، راجع قسم أنماط التقنيع في README الخاص بـ WDIO Logger.
النوع: String
الافتراضي: undefined
مثال:
{
maskingPatterns: '/--key=([^ ]*)/i,/RESULT (.*)/'
}
WebdriverIO
يمكن استخدام الخيارات التالية (بما في ذلك الخيارات المذكورة أعلاه) مع WebdriverIO بشكل مستقل: