el problema es que la imagen Docker de Cypress establece el idioma del navegador en inglés y algunos elementos de la página se traducen al inglés. Parece que es un error en Cypress porque el navegador en la imagen de Docker, independientemente del idioma establecido, traduce ciertos textos al inglés. incluso si el idioma del navegador establecido es diferente.
el idioma de mi navegador local es diferente al de la imagen de la ventana acoplable, por lo que algunos textos son diferentes para mí localmente que en la imagen de la ventana acoplable (inglés). ahora tengo que construir una solución alternativa hasta que Cypress logre corregir el error.
Quiero que Cypress seleccione un elemento que se selecciona mediante un o lógico ( || ). Sin embargo, no funciona porque cypress.contains() no lo admite. Para una mejor ilustración, aquí hay un ejemplo simple de lo que quiero decir. ¿Tienes alguna idea de cómo implementar esto?
const value1 = data.text_local_language const value2 = data.text_english cy.get("element") .contains(value1 || value2) .click();Existe la afirmación oneOf si se acepta una coincidencia exacta.
cy.get('element') .should('satisfy', ($el) => { expect($el.text()).to.be.oneOf([value1,value2]) }) .click()Puede verificar que el texto contenga texto dentro de un .then() y confirmarlo.
const thisText = 'this' const thatText = 'that' cy.get('element') .then($el => { const text = $el.text() const thisOrThat = text.includes(thisText) || text.includes(thatText) expect(thisOrThat, `text contains ${thisText} or ${thatText}`).to.be.true cy.wrap($el).click() })Puede usar una expresión regular en contains()
const value1 = data.text_local_language const value2 = data.text_english const regex = new RegExp(`${value1}|${value2}`) // build regex from variables cy.get("element") .contains(regex) .click(); La expresión regular (dentro de las barras) value1|value2 coincide con value1 o value2 ( o se indica con el símbolo de barra vertical | ).