Мой вопрос касается использования атрибутов данных. Cypress рекомендует использовать data-cy, data-test или data-testid.
Некоторые из самых сложных селекторов включают выбор строки и столбца. со стола. Пример:
Код: Выделить всё
Name
Email
Phone
Bob Fish
bob@fish.co
123-123-1234
Shaggy Rogers
shag@mysteryinc.com
509-123-1235
Код: Выделить всё
...
...
...
...
Код: Выделить всё
cy.contains('[data-test="users-table"] [data-test="name-col"]', user.name).should('be.visible')
Код: Выделить всё
cy.get(`[data-test="users-table"] [data-test="user-id-${user.id}"]`).within(() => {
cy.get('[data-test="name-col"]').should('have.text', user.name)
cy.get('[data-test="email-col"]').should('have.text', user.email)
cy.get('[data-test="phone-col"]').should('have.text', user.phone)
})
Код: Выделить всё
...
...
...
...
...
Код: Выделить всё
data-entity
Итак, каков правильный, объективный и совсем не основанный на мнениях способ использования атрибутов данных? Потому что мы знаем, что при разработке программного обеспечения никогда не бывает компромиссов и есть только один правильный ответ.
Кроме того, я также начал читать о библиотеке тестирования Cypress, которая, похоже, может в некоторой степени помочь получение некоторых элементов семантически значимым способом (например, роль или метка) но все равно останутся тонны разметки, которая не будет покрыта, если, возможно, я не начну бросать role= во все, что кажется как грязный хак и, вероятно, противоречит ARIA или какому-то другому стандарту W3C.
Подробнее здесь: https://stackoverflow.com/questions/782 ... attributes