我正在测试一个Windows-1252编码的页面,它在html中具有以下meta标签:
<html>
<head>
<title>Meta-SSC</title>
<meta http-equiv="Content-Type" content="text/html">
<meta charset="windows-1252">
但是柏树赛跑者无法捕捉到它,并且无法正确显示á,é等字符,如下所示:
因此我的测试失败。
另一方面,在chrome(版本72.0.3626.121在Windows 10上运行的32位正式版本)或firefox(65.0.2 64位)上进行测试时,它可以正常工作:
任何想法我该如何解决?
在赛普拉斯的github上找到了this issue。
答案 0 :(得分:0)
它确实是known issue
这是我开发的解决方法:
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\.$/)
})
})