Тестування OCR
Автоматизоване тестування на мобільних нативних додатках та сайтах для комп'ютерів може бути особливо складним, коли маєш справу з елементами, які не мають унікальних ідентифікаторів. Стандартні селектори WebdriverIO не завжди можуть допомогти. Тут на допомогу приходить @wdio/ocr-service
— потужний сервіс, який використовує OCR (Оптичне розпізнавання символів) для пошуку, очікування та взаємодії з елементами на екрані на основі їхнього видимого тексту.
Наступні користувацькі команди будуть надані та додані до об'єкта browser/driver
, щоб ви отримали правильний набір інструментів для виконання своєї роботи.
await browser.ocrGetText
await browser.ocrGetElementPositionByText
await browser.ocrWaitForTextDisplayed
await browser.ocrClickOnText
await browser.ocrSetValue
Як це працює
Цей сервіс:
- створить знімок екрану вашого пристрою. (За потреби ви можете вказати область пошуку — елемент або об'єкт прямокутника, щоб вказати конкретну область. Дивіться документацію для кожної команди.)
- оптимізує результат для OCR, перетворюючи знімок екрану на чорно-білий з високим контрастом (високий контраст потрібен для запобігання фонового шуму зображення. Це можна налаштувати для кожної команди.)
- використовує Оптичне розпізнавання символів з Tesseract.js/Tesseract для отримання всього тексту з екрану та виділення всього знайденого тексту на зображенні. Підтримує кілька мов, які можна знайти тут.
- використовує нечітку логіку з Fuse.js для пошуку рядків, які приблизно дорівнюють заданому шаблону (а не точно). Це означає, наприклад, що пошукове значення
Username
також може знайти текстUsename
або навпаки. - Надає CLI майстер (
npx ocr-service
) для перевірки ваших зображень та отримання тексту через термінал
Приклад кроків 1, 2 та 3 можна побачити на цьому зображенні
Працює з НУЛЬОВИМИ системними залежностями (крім тих, які використовує WebdriverIO), але за потреби може також працювати з локальною інсталяцією Tesseract, що значно зменшить час виконання! (Також дивіться Оптимізацію виконання тестів про те, як прискорити ваші тести.)
Зацікавились? Почніть використовувати вже сьогодні, дотримуючись інструкцій Початок роботи.
Існує безліч причин, через які ви можете не отримати якісного результату від Tesseract. Одна з найбільших причин, яка може бути пов'язана з вашим додатком та цим модулем, полягає в тому, що немає належного кольорового розрізнення між текстом, який потрібно знайти, та фоном. Наприклад, білий текст на темному фоні можна легко знайти, але світлий текст на білому фоні або темний текст на темному фоні навряд чи можна виявити.
Див. також цю сторінку для отримання додаткової інформації від Tesseract.
Також не забудьте прочитати FAQ.