Cypress runner игнорирует HTML-тег charset=windows-1252

Я тестирую страницу с кодировкой Windows-1252, она имеет следующие метатеги в html:

<html>
<head>
  <title>Meta-SSC</title>
  <meta http-equiv="Content-Type" content="text/html">
  <meta charset="windows-1252">

Но кипарисовый бегун не поймает его и не сможет правильно отображать такие символы, как á, é и т. д., например:

cypress runner игнорирует метатег HTML кодировки Windows 1252

Мой тест не работает из-за этого.

С другой стороны, при тестировании на Chrome (версия 72.0.3626.121, официальная сборка, 32-разрядная версия, работающая в Windows 10) или Firefox (65.0.2, 64 бита) все работает нормально:

введите здесь описание изображения

Любая идея, как я могу устранить неполадки?


Нашел эту проблему на github Cypress, которая может быть связана.


person opensas    schedule 17.03.2019    source источник


Ответы (1)


Это действительно известная проблема.

это обходной путь, который я разработал:

Cypress.Commands.add('containsLike', {
  prevSubject: true
}, (subject, search, chars) => {

  chars = chars || 'áéíóúñÁÉÍÓÚÑ'
  if (!Array.isArray(chars)) chars = chars.toString().split('')

  chars.forEach( char => {
    const repAllChars = new RegExp(char, 'g') // see: https://stackoverflow.com/a/17606289/47633
    search = search.replace(repAllChars, '.')
  })

  const regExp = new RegExp('^' + search + '$')
  return cy.wrap(subject).contains(regExp)
})

и я использую это так:

describe('my first test', () => {
  it.only('should pass', () => {
    cy.visit('http://localhost/xxxx/yyy.asp')
      .get('div.flash_error span')
      .containsLike('El código de la aplicacion no puede estar vacío.')
// it runs .contains(/^El c.digo de la aplicacion no puede estar vac.o\.$/)
  })
})
person opensas    schedule 20.03.2019