Простой ответ: не:)
Чтобы быть более точным c используйте взамен html выбор атрибута. Соглашение должно иметь атрибут с именем data-cy
. Кроме того, я обнаружил, что удобно выбирать data-cy-identifier
для выбора определенных c строк. Поскольку я не уверен, что вы пытаетесь сделать с вашим кодом, я буду использовать похожий пример, который, как мы надеемся, поможет вам:
<table data-cy="expences">
<tr>
<td data-cy="month">January</td>
<td data-cy="price">$100</td>
</tr>
<tr data-cy="discounted">
<td data-cy="month">Feburary</td>
<td data-cy="price">$80</td>
</tr>
<tr data-cy="discounted">
<td data-cy="month">March</td>
<td data-cy="price">$10</td>
</tr>
</table>
Вы, конечно, можете делать все виды комбинаций этого, но теперь вы можете сделать более точные c и полезные выборы, такие как:
cy.get('[data-cy="expenses"]').find('[data-cy="discounted"]').find('[data-cy="price"]').should(...)
и аналогичные. Это гибкий подход, поскольку он отражает структуру ваших данных, а не презентацию, поэтому вы можете изменить это на список или еще что-нибудь позже. Он избегает выбора изменчивых вещей, поэтому он также более надежен. Он также использует иерархию, а не чрезмерно специфицированные c селекторы.
Идея добавления таких вещей, как data-cy-identifier
, позволяет вам делать выборки по идентификатору (вы можете распространять ее, используя javascript, angular, vue или что вы используете), а затем проверяете такие вещи, как содержимое строки с логически связанными элементами.
Надеюсь, это поможет вам. Также я могу рекомендовать читать: https://docs.cypress.io/guides/references/best-practices.html