Как считать элементы DOM в утверждении Cypress - PullRequest
0 голосов
/ 30 мая 2018

Я пытаюсь подсчитать количество опций в элементе select и количество элементов определенного класса в DOM.

Мне нужно сравнить два итога для утверждения Cypress.

Я могу выбрать нужные опции, перебрать их с каждой () и увеличить счетчик таким образом.Тем не менее, это асинхронный, и это также неуклюжее решение.Я уверен, что объект, полученный с помощью моего cy.get (), имеет свойство длины, но я просто не могу его получить.

Вот одна из вещей, которые я ожидал сработать.Он записывает undefined на консоль.

cy.get('div[data-cy-type="group-component"]:first').as('firstGroup');
cy.get('@firstGroup').find('[name=group_id]').as('groupSelect');
console.log(cy.get('@groupSelect').children('option').length);

Я знаю, что мой псевдоним хорош, и мой cy.get () возвращает правильный элемент select.

Если ясделать что-то вроде этого:

cy.get('@groupSelect').children('option').each(function(){
    console.log(i++);
});

, тогда он будет перебирать каждую опцию.Но он асинхронный, поэтому не очень помогает в этом потоке.

1 Ответ

0 голосов
/ 09 июня 2018

Может быть, вы можете использовать Cypress. $ .Однако обратите внимание, что в документации нет точного объявления об этом как о инструменте тестирования:

Это отличный способ синхронно запрашивать элементы при отладке из Developer Tools.

В любом случае, я верю, что что-то в этом направлении даст ожидаемое вами значение:

selector = 'div[data-cy-type="group-component"]:first select[name=group_id] option'
count = Cypress.$(selector).length
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...