Использование Cypress select (), когда Select содержит повторяющиеся значения - PullRequest
0 голосов
/ 17 июня 2019

Мне нужно выбрать значение в select.Выбор представляет собой список стран с отображением их названий с двухбуквенным кодом страны в качестве значения для каждого параметра.Мы выходим на вершину наиболее отобранных стран, оставляя их в алфавитном порядке.Это означает, что элементы, отображаемые наверху, повторяются дважды.

<select>
  <option value="gb">UK</option>
  <option value="us">USA</option>
  <option value="af">Afganistan</option>
  <option value="ai">Aland Islands</option>
  ...
  <option value="us">USA</option>
  ...
  <option value="us">UK</option>
  ...
</select>

Я выбираю значение, подобное этому:

cy.getSelect().select('gb')

Однако возникает ошибка:

CypressError: Тайм-аут повторной попытки: cy.select () совпал с более чем одним параметром по значению или тексту: gb

Это имеет смысл, так как значение для 'UK' равно gbи он появляется вверху списка и в списке в алфавитном порядке.

Как я могу сказать Cypress игнорировать дублирующееся значение и выбрать первое совпадение?

Обратите внимание, что я не могу гарантировать индекс какой-либо страны и что у меня есть множество других тестов, которые выбирают разные страны.Мне нужен способ сказать Cypress, чтобы выбрать первый матч.

1 Ответ

0 голосов
/ 19 июня 2019

Вот несколько источников для просмотра: https://docs.cypress.io/api/commands/select.html#Text-Content & https://docs.cypress.io/api/commands/eq.html#Syntax

То, что я бы порекомендовал попробовать, будет выглядеть следующим образом: cy.get('select').select('gb').eq(0) или cy.get('select').select('gb').first()

Любой из этих вариантов захватит первый элемент, если найдены дубликаты.Другие вещи, которые вы можете сделать с eq(): eq(-1) для последнего элемента или eq(2) для третьего элемента (базовый ноль) и т. Д.

Редактировать: использовать cy.get ('select') вместо cy.getSelect ();

...