Как проанализировать игры Canvas/WebGL на предмет элементов пользовательского интерфейса?Javascript

Форум по Javascript
Ответить
Anonymous
 Как проанализировать игры Canvas/WebGL на предмет элементов пользовательского интерфейса?

Сообщение Anonymous »

Я столкнулся с проблемой автоматизации тестирования сотен простых веб-игр (созданных с помощью Canvas/WebGL). Моя цель — создать надежный пакет автоматизации с использованием Python и Robot Framework.
Проблема:
Традиционные локаторы (CSS, XPath) не работают, поскольку вся игра нарисована на холсте. Я пробовал использовать сопоставление шаблонов OCR и OpenCV, но этот подход недостаточно гибок и масштабируем для нашего большого и постоянно меняющегося набора игр. Его сложно поддерживать, и он не очень надежен.
Что мне нужно проверить:
Для каждой игры мне нужно проверить две основные вещи:
  • Что игра загрузилась правильно.
  • Что кнопки типа «СТАРТ» или «ПРОДОЛЖИТЬ» видны и доступны для нажатия.
Мой вопрос:
Вместо того, чтобы полагаться на визуальные шаблоны, я ищу способ «самоанализа» или «подключения» к самой игре, чтобы увидеть, какие интерактивные элементы (например, кнопки) в настоящее время присутствуют в виртуальной DOM или состоянии игры.
  • Есть ли способ напрямую взаимодействовать с JavaScript
    контекстом игры?
  • Существует ли общие библиотеки или платформы, которые предоставляют общедоступный API или
    внутреннее состояние, к которому я могу подключиться из моего сценария Python?
Я открыт для любого творческого решения, которое более надежно и удобно в обслуживании, чем чистая визуальная регрессия. Мне просто нужно направление
Технический стек: Python, Robot Framework, Selenium.
(Я не могу публиковать здесь прямую ссылку на игры из-за правил субреддита, но при необходимости могу предоставить примеры через DM).
Заранее спасибо за любые подсказки и советы!

Подробнее здесь: https://stackoverflow.com/questions/797 ... i-elements
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»