Тестирование 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
или наоборот. - Предоставляет мастер командной строки (
npx ocr-service
) для проверки ваших изображений и извлечения текста через терминал
Пример шагов 1, 2 и 3 можно увидеть на этом изображении
Он работает с НУЛЕВЫМИ системными зависимостями (кроме того, что использует WebdriverIO), но при необходимости также может работать с локальной установкой Tesseract, что значительно сократит время выполнения! (См. также Оптимизация выполнения тестов о том, как ускорить ваши тесты.)
Заинтересовались? Начните использовать его сегодня, следуя руководству Начало работы.
Существует множество причин, по которым вы можете не получить качественный результат от Tesseract. Одна из главных причин, которая может быть связана с вашим приложением и этим модулем, может заключаться в том, что нет надлежащего цветового различия между текстом, который нужно найти, и фоном. Например, белый текст на темном фоне можно легко найти, но светлый текст на белом фоне или темный текст на темном фоне найти сложно.
См. также эту страницу для получения дополнительной информации от Tesseract.
Также не забудьте прочитать FAQ.