Как я могу использовать Cypress для выбора <option>в определенном поле HTML <select>? - PullRequest
1 голос
/ 18 мая 2019

Я хочу выбрать параметры из приведенного ниже HTML-кода. timeentry_lov1 - это Select Name, которое является вторым элементом на странице с тем же именем. Также я проверил, что на странице нет фрейма. Но есть ли в Cypress концепция фрейма, как селен? Если нет, то как мне работать с атрибутом Select?

HTML:

enter image description here] 1

Нижеприведенное предложение Select, которое я пробовал:

cy.get('timeentry_lov1',{timeout : 60000}).eq(1).select('NB-860').debug();
cy.get('timeentry_lov1').eq(1).select('NB-860-Test Automation');
cy.select('timeentry_lov1',{timeout : 7000}).eq(1).should('have.value','NB-860');
cy.find('timeentry_lov1').get('select').select('NB-860');

1 Ответ

1 голос
/ 18 мая 2019

Чтобы найти на странице все <select> элементы с именем, равным "timeentry_lov1", используйте CSS-селектор , который фильтрует атрибут name, например:

cy.get('select[name="timeentry_lov1"]')

Чтобы выбрать только тег second <select>, вы можете использовать :nth-of-type(2), чтобы выбрать только второй найденный элемент:

cy.get('select[name="timeentry_lov1"]:nth-of-type(2)')

Теперь, чтобы фактически выбрать элемент, просто используйте cy.select() с value из <option>, который вы хотите выбрать:

cy.get('select[name="timeentry_lov1"]:nth-of-type(2)')
.select('NB-860')

Это должно выполнить то, что вы пытаетесь сделать.


Совет: вы можете использовать Cypress Selector Playground , чтобы помочь вам найти хорошие CSS-селекторы для использования в ваших тестах. Проверьте документы для видео о том, как это работает.

...