اختبار التعرف البصري على النصوص (OCR)
يمكن أن يكون الاختبار الآلي لتطبيقات الهاتف المحمول ومواقع سطح المكتب صعبًا بشكل خاص عند التعامل مع العناصر التي تفتقر إلى معرفات فريدة. قد لا تساعدك محددات WebdriverIO القياسية دائمًا. هنا يأتي دور @wdio/ocr-service
، وهي خدمة قوية تستفيد من التعرف البصري على النصوص (Optical Character Recognition) للبحث عن العناصر الموجودة على الشاشة والانتظار لها والتفاعل معها بناءً على النص المرئي الخاص بها.
سيتم توفير الأوامر المخصصة التالية وإضافتها إلى كائن browser/driver
بحيث تحصل على مجموعة الأدوات المناسبة للقيام بعملك.
await browser.ocrGetText
await browser.ocrGetElementPositionByText
await browser.ocrWaitForTextDisplayed
await browser.ocrClickOnText
await browser.ocrSetValue
كيف تعمل
ستقوم هذه الخدمة بما يلي
- إنشاء لقطة شاشة لشاشتك/جهازك. (إذا لزم الأمر، يمكنك توفير نطاق البحث، والذي يمكن أن يكون عنصرًا أو كائن مستطيل، لتحديد منطقة معينة. راجع وثائق كل أمر.)
- تحسين النتيجة للتعرف البصري على النصوص من خلال تحويل لقطة الشاشة إلى أبيض/أسود مع لقطة شاشة عالية التباين (التباين العالي مطلوب لمنع الكثير من ضوضاء خلفية الصورة. يمكن تخصيص ذلك لكل أمر.)
- استخدام التعرف البصري على النصوص من Tesseract.js/Tesseract للحصول على جميع النصوص من الشاشة وتسليط الضوء على جميع النصوص الموجودة في الصورة. يمكنها دعم عدة لغات يمكن العثور عليها هنا.
- استخدام المنطق الضبابي من Fuse.js للعثور على السلاسل النصية التي تكون متساوية تقريبًا مع نمط معين (بدلاً من المساواة التامة). هذا يعني على سبيل المثال أن قيمة البحث
Username
يمكن أن تجد أيضًا النصUsename
أو العكس. - توفير معالج واجهة سطر الأوامر (
npx ocr-service
) للتحقق من صورك واسترجاع النص من خلال الطرفية الخاصة بك
يمكن العثور على مثال للخطوات 1 و2 و3 في هذه الصورة
تعمل مع صفر من التبعيات النظامية (بخلاف ما يستخدمه WebdriverIO)، ولكن إذا لزم الأمر، يمكنها أيضًا العمل مع تثبيت محلي من Tesseract مما سيقلل من وقت التنفيذ بشكل كبير! (انظر أيضًا تحسين تنفيذ الاختبار حول كيفية تسريع اختباراتك.)
متحمس؟ ابدأ في استخدامه اليوم من خلال اتباع دليل البدء.
هناك مجموعة متنوعة من الأسباب التي قد تمنعك من الحصول على مخرجات ذات جودة عالية من Tesseract. أحد أكبر الأسباب التي قد تكون مرتبطة بتطبيقك وهذه الوحدة يمكن أن يكون حقيقة أنه لا يوجد تمييز مناسب في اللون بين النص الذي يجب العثور عليه والخلفية. على سبيل المثال، يمكن العثور على النص الأبيض على خلفية داكنة بسهولة، ولكن النص الفاتح على خلفية بيضاء أو النص الداكن على خلفية داكنة يصعب العثور عليه.
راجع أيضًا هذه الصفحة لمزيد من المعلومات من Tesseract.
لا تنس أيضًا قراءة الأسئلة الشائعة.