مچرهای سفارشی
WebdriverIO از یک کتابخانه اعتبارسنجی expect
با سبک Jest استفاده میکند که دارای ویژگیهای خاص و مچرهای سفارشی مخصوص اجرای تستهای وب و موبایل است. اگرچه کتابخانه مچرها بزرگ است، اما قطعاً برای تمام موقعیتهای ممکن مناسب نیست. بنابراین، امکان گسترش مچرهای موجود با مچرهای سفارشی تعری ف شده توسط شما وجود دارد.
در حال حاضر تفاوتی در نحوه تعریف مچرهایی که مختص شیء browser
یا نمونه element هستند وجود ندارد، اما این موضوع ممکن است در آینده تغییر کند. برای اطلاعات بیشتر در مورد این توسعه، webdriverio/expect-webdriverio#1408
را دنبال کنید.
مچرهای سفارشی مرورگر
برای ثبت یک مچر سفارشی مرورگر، از تابع extend
روی شیء expect
استفاده کنید. این کار را میتوانید مستقیماً در فایل spec خود یا به عنوان بخشی از هوک مانند before
در فایل wdio.conf.js
انجام دهید:
loading...
همانطور که در مثال نشان داده شده، تابع مچر، شیء مورد انتظار (مثلاً مرورگر یا شیء المنت) را به عنوان پارامتر اول و مقدار مورد انتظار را به عنوان پارامتر دوم دریافت میکند. سپس میتوانید از مچر به شکل زیر استفاده کنید:
loading...
مچرهای سفارشی المنت
مشابه مچرهای سفارشی مرورگر، مچرهای المنت تفاوتی ندارند. در اینجا نمونهای از نحوه ایجاد یک مچر سفارشی برای اعتبارسنجی aria-label یک المنت آمده است:
loading...
این به شما امکان میدهد اعتبارسنجی را به شکل زیر فراخوانی کنید:
loading...
پشتیبانی از TypeScript
اگر از TypeScript استفاده میکنید، یک مرحله دیگر برای اطمینان از امنیت نوع مچرهای سفارشی شما لازم است. با گسترش رابط Matcher
با مچرهای سفارشی خود، تمام مشکلات مربوط به نوع برطرف میشوند:
loading...
اگر یک مچر نامتقارن سفارشی ایجاد کردهاید، میتوانید به طور مشابه انواع expect
را به شکل زیر گسترش دهید:
declare global {
namespace ExpectWebdriverIO {
interface AsymmetricMatchers {
myCustomMatcher(value: string): ExpectWebdriverIO.PartialMatcher;
}
}
}