Второй выпадающий список не заполняется Cypress - PullRequest
0 голосов
/ 01 апреля 2020

Я столкнулся с проблемой. Кто-нибудь может мне помочь?

Итак, у меня есть два выпадающих списка, и второй зависит от варианта, который я выбираю для первого.

Скажем, например: Первый выпадающий список имеет параметры «цифры» и «буквы», а второй раскрывающийся список по умолчанию пуст. Однако, когда я выбираю опцию «буквы» в первом раскрывающемся списке, вторая заполняется опциями «A», «B» и «C». Вручную, он работает нормально, но когда я выбираю первый выпадающий список с Cypress, второй не заполняется. Он остается пустым, поэтому я ничего не могу выбрать для него.

HTML:

<select id="list" class="selectpicker form-control" onchange=""><option value="0">select your preferences</option><option value="2">numbers</option><option value="3">letters</option></select>

CYPRESS: cy.get ('# list'). Select ('letters')

он выбирает буквы параметров, я вижу буквы вариантов, выбранные в первом раскрывающемся списке, но во втором ничего не происходит.

Ответы [ 3 ]

2 голосов
/ 02 апреля 2020

альтернативно вы можете выбрать по значению кипарис документов

cy.get('#list').select('3')
1 голос
/ 03 апреля 2020

Я думаю, вы должны "принудительно" обновить данные из "не обновленного" выпадающего списка. Попробуйте «кликнуть ()».

Примерно так:

cy.get('#list')
  .contains('letters')
  .then(option => { // Confirm have correct option 
    cy.wrap(option).contains('letters'); 
    option[0].click(); // After click, mdc-select should hold the text of the 
                      // selected option: cy.get('#list').contains('letters'); 
  });

Может быть, эта ссылка поможет вам: выберите элемент в раскрывающемся списке с помощью Cypress

1 голос
/ 02 апреля 2020

Решение от того, что кажется, состоит в том, чтобы заставить щелчок, потому что, из того, что я мог собрать, кипарис выбирает вариант, но ЭТО НЕ НАЖИМАЕТ ВАРИАНТ! Это ошибка?

Итак, это гигант, который был необходим, в конце концов, чтобы заставить его работать:

//choose the option on the first drop down
    cy.get('#list').select('letters')
    cy.get('#list').contains('letters').then(option => {
        cy.wrap(option).contains('letters');
        option[0].click();
        cy.get('#list').contains('letters');
      });

//choose the option on the second drop down
    cy.get('#list2').select('A')
    cy.get('#list2').contains('A').then(option => {
        cy.wrap(option).contains('A');
        option[0].click();
        cy.get('#list2').contains('A');
      });

//click on the button to save the options selected
    cy.get('.saveButton').click()

, когда обычно должно быть только:

    cy.get('#list').select('letters')
    cy.get('#list2').select('A')
    cy.get('.saveButton').click()

Ребята, вы думаете, что это ошибка?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...