المحاكاة
مع WebdriverIO يمكنك محاكاة واجهات برمجة التطبيقات (APIs) للويب باستخدام أمر emulate
لإرجاع قيم مخصصة تساعدك في محاكاة سلوكيات معينة للمتصفح. لاحظ أن هذا يتطلب أن يستخدم تطبيقك هذه الواجهات البرمجية بشكل صريح.
تتطلب هذه الميزة دعم WebDriver Bidi للمتصفح. بينما تحتوي الإصدارات الحديثة من Chrome وEdge وFirefox على مثل هذا الدعم، فإن Safari لا يدعم هذه الميزة. للحصول على التحديثات تابع wpt.fyi. علاوة على ذلك، إذا كنت تستخدم مزودًا سحابيًا لتشغيل المتصفحات، فتأكد من أن المزود الخاص بك يدعم أيضًا WebDriver Bidi.
لتمكين WebDriver Bidi لاختبارك، تأكد من ضبط webSocketUrl: true
في إمكانياتك.
الموقع الجغرافي
تغيير الموقع الجغرافي للمتصفح إلى منطقة محددة، على سبيل المثال:
await browser.emulate('geolocation', {
latitude: 52.52,
longitude: 13.39,
accuracy: 100
})
await browser.url('https://www.google.com/maps')
await browser.$('aria/Show Your Location').click()
await browser.pause(5000)
console.log(await browser.getUrl()) // outputs: "https://www.google.com/maps/@52.52,13.39,16z?entry=ttu"
هذا سيقوم بتعديل كيفية عمل navigator.geolocation.getCurrentPosition
ويعيد الموقع الذي قمت بتوفيره.
نظام الألوان
تغيير إعداد نظام الألوان الافتراضي للمتصفح عبر:
await browser.emulate('colorScheme', 'light')
await browser.url('https://webdriver.io')
const backgroundColor = await browser.$('nav').getCSSProperty('background-color')
console.log(backgroundColor.parsed.hex) // outputs: "#efefef"
await browser.emulate('colorScheme', 'dark')
await browser.url('https://webdriver.io')
const backgroundColor = await browser.$('nav').getCSSProperty('background-color')
console.log(backgroundColor.parsed.hex) // outputs: "#000000"
هذا سيقوم بتعديل كيفية عمل window.matchMedia
عندما تستعلم عن نظام الألوان عبر (prefers-color-scheme: dark)
.