Cypress и многие другие публикации о тестировании веб-приложений предлагают полагаться на атрибут данных, такой как data-cy или data-test-id, для определения местоположения элементов, а не на атрибут id.
Насколько я понимаю, по двум причинам:
- Современный способ повторного использования компонентов может привести к наличию нескольких компонентов одного типа и может привести к нескольким из этих идентификаторов на одной странице - ноэто также должно применяться к атрибутам «data-cy» или «data-test-id»
- Когда идентификаторы привязаны к CSS, существует тенденция изменять их чаще, тогда как атрибуты data- * могут быть меньшесклонны к изменениям
Может ли кто-нибудь пролить свет на эту рекомендацию?
Другая вещь, которую я рассматриваю, - это попросить моих разработчиков разместить атрибуты 'data-test * "натег div, который будет использовать компонент - таким образом, атрибут test фактически на один уровень выше атрибута id компонента и может пригодиться даже в случаях, когдаLe экземпляры одного и того же компонента используются. Но опять же, я не уверен, почему атрибут id для этого тега div плох при сравнении атрибута data-test *.