انتقل إلى المحتوى الرئيسي

مطابقات مخصصة

يستخدم WebdriverIO مكتبة تأكيد expect بأسلوب Jest والتي تأتي مع ميزات خاصة ومطابقات مخصصة محددة لتشغيل اختبارات الويب والجوال. على الرغم من أن مكتبة المطابقات كبيرة، إلا أنها بالتأكيد لا تناسب جميع المواقف الممكنة. لذلك، من الممكن توسيع المطابقات الموجودة بمطابقات مخصصة تحددها أنت.

تحذير

في حين أنه لا يوجد حاليًا اختلاف في كيفية تعريف المطابقات الخاصة بكائن browser أو نسخة element، فإن هذا قد يتغير بالتأكيد في المستقبل. تابع webdriverio/expect-webdriverio#1408 للحصول على مزيد من المعلومات حول هذا التطوير.

مطابقات المتصفح المخصصة

لتسجيل مطابق متصفح مخصص، استدعِ extend على كائن expect إما في ملف المواصفات الخاص بك مباشرةً أو كجزء من مثلاً تعليق before في ملف wdio.conf.js الخاص بك:

customMatchers/example.ts
loading...

كما هو موضح في المثال، تأخذ دالة المطابقة الكائن المتوقع، مثل المتصفح أو كائن العنصر، كمعلمة أولى والقيمة المتوقعة كمعلمة ثانية. يمكنك بعد ذلك استخدام المطابق كما يلي:

customMatchers/example.ts
loading...

مطابقات العناصر المخصصة

على غرار مطابقات المتصفح المخصصة، لا تختلف مطابقات العناصر. إليك مثالاً على كيفية إنشاء مطابق مخصص للتأكد من aria-label لعنصر:

customMatchers/example.ts
loading...

هذا يسمح لك باستدعاء التأكيد كما يلي:

customMatchers/example.ts
loading...

دعم TypeScript

إذا كنت تستخدم TypeScript، فهناك خطوة إضافية مطلوبة لضمان سلامة نوع المطابقات المخصصة الخاصة بك. من خلال توسيع واجهة Matcher بمطابقاتك المخصصة، تختفي جميع مشكلات النوع:

customMatchers/example.ts
loading...

إذا قمت بإنشاء مطابق غير متماثل مخصص، يمكنك بالمثل توسيع أنواع expect كما يلي:

declare global {
namespace ExpectWebdriverIO {
interface AsymmetricMatchers {
myCustomMatcher(value: string): ExpectWebdriverIO.PartialMatcher;
}
}
}

Welcome! How can I help?

WebdriverIO AI Copilot