В настоящее время это невозможно из коробки для кипариса. Запрос функции https://github.com/cypress-io/cypress/issues/630
Но вы можете обойти это, добавив пользовательские команды в support / commands.js и используйте эти команды в своем тестовом сценарии. То, что вы в итоге получите в command.js:
Cypress.Commands.add('haveText', function (text) {
cy.get('.cell')
.then($cell => $cell.text().trim())
.should('eq', text)
})
В тестовом сценарии вы получите:
cy.haveText('Hello')
Вместо использования trim()
в command.js вы также можете использовать contains()
, это делает частичное совпадение, поэтому пробелы не являются проблемой (обратите внимание, что «яблочный пирог» также соответствует требованиям, если вы ищете «яблоко» , если это не проблема, вы можете использовать contains()
. Commands.js будет выглядеть так:
Cypress.Commands.add('haveText', function (text) {
cy.get('.cell')
.should('contains', text)
})
Но что, вероятно, больше соответствует вашим требованиям, так это использование contains()
в сочетании с регулярным выражением. Вам не нужны никакие скрипты в command.js, но только в тестовом скрипте вы можете использовать это:
cy.contains(/^\s*Hello\s*$/))
\s*
должен соответствовать любому символу пробела ноль или более раз.
^
- начать сопоставление в начале текста
$
- конец совпадения в конце текста.
Регулярное выражение не может использоваться в пределах should()
достаточно печально