Порекомендуйте фреймворки, тулы для автоматизации тестирования appearance of Web App (UX)

Порекомендуйте пожалуйста фреймворки для TA на C# либо JS, для тестировани внешнего вида элементов веб приложения, желательно с указанием поинтов, за что вы его рекомедете и встречали ли вы какие-либо минорные проблемы при работе с таковым. Заранее спасибо.

На JS советую Gemini и Hermione от Яндекса, webdriverIO с подключенным сервисом для визуальной регрессии, Protractor вместе с плагином protractor-image-comparsion.

Все инструменты умеют проводить автоматический сбор эталонных скриншотов при первом прогоне тестов, хорошо интегрируются с репортерами и показывают разницу, работают во всех распространенных браузерах. Все легко позволяют работать с браузером по протоколу Selenium-а, делать как скриншоты всей страницы, так и отдельных ее элементов, отличаются разными настройками сравнения изображений. Во всех подразумевается, что вы будете хранить эталонные скриншоты в git-репозитории проекта. На JS есть еще много других инструментов, но они либо чего-то из этого не позволяют, либо завязаны на облачные сервисы (часто платные), либо заставляют писать более низкоуровневый код.

Gemini наиболее простой вариант если вам нужно тестировать внешний вид компонентов, до которых просто добраться. Со сложными действиями, не-уникальными селекторами и асинхронщиной будет сложно.

Если нужны сложные действия с браузером или есть проблемы с синхронизацией - лучше использовать Hermione, там под капотом те же возможности, что и в Gemini, но он основан на WebdriverIO, а значит проблем со всем этим не будет. Кроме того, там из коробки также многое сконфигурено, дописано, подключено и настроено, что в WebdriverIO нужно будет делать самому с плагинами. Но у Hermione не самая лучшая документация, некоторые вещи там просто не описаны.

У Gemini и WebdriverIO легко подключается html-репортер с указанием разницы в скриншотах. У wdio и Protractor нужно будет самому написать передачу скришотов в allure reporter, это немного сложнее (но не слишком).

Если нужна полная свобода творчества и легкость конфигурирования, а также хорошие доки - берите webdriverIO и подключайте его visual regression service. Придется чуть попыхтеть, зато не форк и большое комьюнити, есть псевдо-синхронный стиль кода и вообще инструмент очень гибкий.

А если у вас приложение на Angular, можно просто прикрутить к Protractor-у плагинчик, дописать пару методов и он будет то же самое делать. Тут плюс в том что у Protractor-а синхронизация с Angular из коробки (правда иногда ее не достаточно).

Советую обратить внимание на https://trueautomation.io
В первую очередь Тул решает проблему динамических локаторов на странице c помощью AI и нейроны сетей.

Сейчас поддерживается Ruby(Capybara) и Java, но ребята работают над поддержкой JS (WebdriverIO)