Скопируйте файл и пересчитайте новое состояние - PullRequest
1 голос
/ 29 марта 2019

Я борюсь с чем-то на работе.Я новичок, так что извините, если я спрошу что-нибудь легкое.Я не могу найти это лично в Интернете, поэтому я надеюсь, что вы можете предоставить мне (легко понятную) информацию.

Я создаю автоматизированный тест.Я использую Cypress.

На моей работе возникает следующая ситуация:

1) Имеется 1 файл.Мы хотим скопировать это.Таким образом, мы должны сначала посчитать начальное состояние (1 файл)

2) Мы скопируем этот файл

3) Теперь у нас есть 2 файла.Мы хотим посчитать, что действительно есть 2 файла

У меня есть следующий код для этого:

// count initialstate (1 file) = 
let InitialStateCopy = 
cy.getScoped('catalog-> item:case_type:link').contains('filename').should('have.length', 1 ) 

// press copy

// copy the file, execute actions here

// check if file is copied correctly (2 files)

let NewState = 
cy.getScoped('catalog-> item:case_type:link').contains('filename').should('have.length', 2 ) 

Я получаю сообщение

CypressError: cy.contains ()нельзя передать параметр длины, потому что он будет когда-либо возвращать только 1 элемент.

И я вижу, что Cypress находит только 1 элемент.

Кто-нибудь знает, как я могу подсчитать, сколько объектов существует?Какой код я должен использовать для этого?По сути, я просто хочу знать, как я могу считать элементы на странице.

1 Ответ

0 голосов
/ 29 марта 2019

cy.contains('blah') автоматически заявит, что элемент, содержащий blah, существует:

.contains() будет автоматически повторяться до тех пор, пока элемент (ы) не появится в DOM.

Так что вам не нужно делать .should('have.length', 1), чтобы утверждать это. Сам .contains выполняет неявное утверждение.

Cypress пытается предупредить вас, что .contains возвращает только 1 элемент , поэтому вы можете делать что-то не так, если пытаетесь утверждать на его длину. В этом случае вы пытаетесь утверждать, что length - это 2, что невозможно.

Я не знаю, какой у вас .getScoped, но он просто использует обычный синтаксис CSS. Чтобы сделать то, что вы пытаетесь сделать, попробуйте этот JQuery selector , который работает, потому что Cypress использует механизм выбора JQuery:

cy.get(".catalog .item:contains('filename')").should('have.length', 2)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...