Cypress - способ, чтобы заставлять функции содержимого () работать без учета регистра - PullRequest
0 голосов
/ 16 ноября 2018

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

Есть ли способ заставить Cypress сопоставлять текст, если я использую только строчные буквы в качествеаргументы функции has ()?

Ответы [ 4 ]

0 голосов
/ 03 апреля 2019

contains() может принимать регулярное выражение, для которого вы можете указать регистрозависимое совпадение с флагом i:

В других ответах это уже упоминалось, но это может быть самый простой способ его использования.:

cy.get('.some-selector').contains(/match cAse-InSENsitiVE/i);
0 голосов
/ 16 ноября 2018

Вы можете добавить регистрозависимое регулярное выражение в команду contains, хотя при использовании регулярного выражения вам нужно быть осторожным, избегая любых специальных символов регулярного выражения,
см. Эту Escape-строку для использования в регулярном выражении Javascript

const escapeRegExp = (string) => {
  return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
}

const expected = 'mYtEXTtO*tEST?';
const regex = new RegExp(escapeRegExp(expected), 'i');

cy.contains(regex);
cy.contains('MySelector', regex);
0 голосов
/ 18 января 2019

Кипарис имеет Лодаш в комплекте.Итак, это мой текущий обходной путь для сопоставления текста без учета регистра, пока Cypress не включит эту функцию для cy.contains ()

cy.get('p.heading').then( $headings => {
  let texts = $headings.map( (_, el) => (Cypress._.toUpper(el.textContent)));

  expect(texts.get()).to.include('INCONSISTENT CAPITALIZED TITLE 1');

  //If you have more to match
  expect(texts.get()).to.include('INCONSISTENT CAPITALIZED TITLE 2');
});
0 голосов
/ 16 ноября 2018

Вы можете использовать регулярное выражение.

cy.get("#whatever").its("something").should("match", "[your regex here]")

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