Я пишу Cypress-тест для проекта React.Я должен быть в состоянии нацелиться на <input>
, вложенный внутрь <label>
, чтобы я мог ввести в это поле ввода.У <input>
нет идентификаторов классов.
Вот мой HTML.
<label class="Input">
<div class="label">LABEL TEXT</div>
<input type="text">
</label>
У меня есть многочисленные входные данные в той же форме с точным HTML, показанным выше.Они отличаются только текстом в <div>
(т. Е. LABEL TEXT).
Причина, по которой я окружаю <input>
в теге метки, заключается в том, что я хочу, чтобы пользователь мог ориентироваться на ввод, щелкая в любом месте вокруг текста метки ИЛИ на вводе.Добавление класса к входам не имеет смысла для нашей кодовой базы только ради тестирования Cypress.Я не могу использовать псевдо-селекторы, такие как: first cy.get('input[type="text"]:first')
, потому что я не хочу, чтобы мои тесты ломались, если я добавляю дополнительные формы в форму.
Я попробовал следующее, но он пытается ввести вметка вместо ввода.
cy.contains('LABEL TEXT')
.click()
.type('test')
Несмотря на то, что он фокусируется на средстве запуска Cypress, он все равно пытается ввести <div>
вместо сфокусированного ввода.
Поскольку я очень плохо знаком с Сайпрессом и утверждениями, мне остается чесать голову.Я заинтересован в решении (если возможно), которое не включает добавление классов к моим входам только для тестирования Cypress.Я надеюсь, что это просто недостаток в моих знаниях CSS, Cypress или утверждений.
Спасибо