AS
Обычно одного набора тестов хватает под все девайсы.
Единственная разница в работе / локаторах должна разруливаться на этапе передачи названия браузера / разрешения в тест, когда у тебя в коде метода будет использоваться один набор локаторов, а в случае другого браузера - другой.
Если сценарий тестов при этом не меняется и для пользователя количество манипуляции остаётся неизменным, нет никакого смысла иметь набор на каждый браузер / разрешение.
Просто в реализации взаимодействий с кнопками у тебя должно быть обращение к другим локаторам.
Если же например на логин форме нужно вместо одного раза нажать два, то соответствующий метод будет иметь внутри себя несколько if / elif вариантов работы.
То есть ты случаи работы с браузером Х и У будут описаны внутри метода login() , а тесты использующие этот метод останутся по своей сути универсальными для всех браузеров / разрешений.
Разбивать разные реализации под разные девайсы / платформы / разрешения можно по-разному:
У тебя может быть explorer_page_object и chrome_page_object, где у каждого есть своя реализация метода. И где у тебя в коде в момент начала тестовой сессии твой основной класс с page object методами будет перенимать поведение от той или иной реализации.
А может быть и в каждом методе на ифах.
Что принять за решение зависит от того, несколько кардинально будут различаться реализации на разных разрешениях/ браузерах.
Если отличии мало и затрагивает пару методов, то имеет смысл в самих методах делать имплементацию с работой разных браузеров.
Если отличий много, то имеет смысл завести отдельные классы на каждый браузер.
Суть при этом не меняется: если поведение для пользователя +- аналогичное, то наличие разных браузеров не должно диктовать тебе 3 тест набора вместо одного. Вместо этого у тебя будет один тестовый набор, в который ты в качестве входного параметра передаёшь желаемые характеристики браузера