Доброго всем дня!
Такая ситуация, делаем автоматизацию на проекте, работа с графиками. Раньше все рисовалось в html и не было никаких проблем) Сейчас все перевели на Canvas, что дало значимый прирост в производительности приложения но добавило проблем с автоматизацией))
Вот так выглядит сейчас наш DOM:
Посоветуйте как работать с ним ? Нужно кликать по секторам графика, брать список лейблов (CEO, HR Manager etc). узнать количество секторов.
Пробовали Sikuli он он не подходит, уж очень не стабильный(
а по человечески - что бы можно было работать с частями графика как с отдельыми веб элементами - на сколько мне известно, никак.
мы оставили идею автоматизировать функционал в котором используется канвас.
имхо. проще и удобнее - проверять такие вещи руками.
Получаете координаты канваса и по оффсету смещаете курсор. Еще как вариант можно перед кликом узнать размер канваса и каким либо образом подогнать координаты, на случай если тестирование будет идти при разных резолюшенах экрана. Но это уже изврат
А что если брать текст относительно цвета со смещением? Находим зону по цвету, смещаемся при помощи above / below / right / left API, берем текст, сравниваем с expected.
Дополню автора, так как вместе работаем над этой задачей:)
Есть кейсы в которых надо вычитывать значения которые отображаются (текст), распознавание текста у Sikuli храмает, пробывали прикрутить другие библиотеки, но сервер CentOS, а либы которые могли бы помочь работают нормально на Windows (хотя может плохо искал).
Есть кейс на определение количества сегментов. Это можно сделать через вычетку текста, но опять таки Sikuli плохо с этим справляется.
Cross-browsing. Тесты должны проганяться на Chrome (on CentOS), FF(Windows), Safari, IE10, IE 11. Рендеринг вносит свои коррективы и соответственно один скриншот для всех браузеров не работает, а это +100 к суппорту скриншотов.