Кто-нибудь знает, как выбрать опцию из выпадающего списка реагировать-выбора в тесте на кипарис?
Я пробовал много вещей, но безрезультатно.
Кажется, что реагируетselect использует скрытый ввод.Этот кипарис не может писать в.И делит, что кипарис также не может записывать в.
Это также не помогает, что я не знаю, как проверить фактический выпадающий список в инструментах разработки, потому что он не остается открытым.
Я использую:
- реагировать-выбрать v2.4.1
- кипарис v3.1.5
Редактировать 1:
@ bkucera's answerработает.Рабочий код, который я получил, был:
it('updates Person', () => {
cy.get('[data-id=bearbeiter]')
.find('.css-10nd86i')
.click()
.find('input')
.eq(1)
.focus()
cy.contains('Test Tester').click({ force: true })
})
Мне пришлось добавить .eq(1)
после find
, потому что, кажется, есть два входа.
Редактировать 2:
Вышеупомянутое решение закончилось тем, что я нажал на элементы в дереве навигации на моем сайте, которые, как оказалось, содержали тот же текст.Так что без сигары: - (
Редактировать 3:
Я также пробовал это решение:
Cypress.Commands.add('setSelectOption', ({ selector, option, value }) => {
cy.get(selector)
.find('.css-10nd86i input')
.eq(1)
.focus()
.type(value, { force: true })
})
... но даже если используется force: true
, я получаюэта ошибка:
The element typed into was:
> <input name="aeId" type="hidden" value="862333db-31cf-444c-b8ea-021c640c7a44">
Cypress considers the 'body', 'textarea', any 'element' with a 'tabindex' or 'contenteditable' attribute, or any 'input' with a 'type' attribute of 'text', 'password', 'email', 'number', 'date', 'week', 'month', 'time', 'datetime', 'datetime-local', 'search', 'url', or 'tel' to be valid typeable elements.
Редактировать 4:
Пока это работает лучше всего:
Cypress.Commands.add('setSelectOption', ({ selector, option, value }) => {
cy.get(selector)
.find('.css-10nd86i input:text')
.focus()
.type(option, { force: true, delay: 600, timeout: 330000 })
.type('{enter}', { force: true })
cy.get(selector)
.find('.css-10nd86i')
.find('input')
.eq(1)
.should('have.value', value)
})
По крайней мере, это работает для коротких списков. Текст вводится медленно.Для нашего списка видов (длиной 7000) я добавил эти опции delay
и timeout
. Задержка, кажется, помогает, но я не смог точно понять, как эти опции влияют на поведение. И иногда время ожидания кипариса: - (
Редактировать 5:
Между тем (реакция-выбор v3.0.4, cypress v3.3.2) все тесты не пройдены, потому что:
Expected to find element '.css-10nd86i' but never found it
Я полагаю, класс изменился.такой хрупкий раствор: - (