Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

192
Visualizações
¿Cómo tener selectores reutilizables con la clase Cypress pageObject?

Estoy tratando de usar un objeto de página en Cypress, quiero tener mis selectores en el mismo archivo para poder reutilizarlos en múltiples funciones y solo necesito cambiarlos en un lugar si necesitan actualizarse.

Aquí hay un ejemplo simple:

 class HomePage { searchLink = "a[class='search button']"; clickSearchLink() { cy.get(this.searchLink).click(); } } export const homePage = new HomePage();

Esto funciona bien, mi prueba puede llamar a las funciones, por ejemplo, homePage.clickSearchLink() pero tengo dos problemas:

  1. Cuando ejecuto eslint falla con

e2e/page-objects/home-page.js 2:14 error Error de análisis: Token inesperado =

  1. Hacerlo de esta manera significa que searchLink está disponible en mis archivos de especificaciones, quiero que solo se vea en esta clase. Intenté configurar searchLink en let o var, pero eso lo hizo inutilizable en la función clickSearchLink().

¿Es posible tener mis selectores en esta clase y aún así pasar la pelusa?

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Si cambia el objetivo de TypeScript a es6/es2015, puede usar campos privados.

Características de la clase privada

Características de la clase privada

Los campos de clase son públicos de forma predeterminada, pero los miembros de clase privada se pueden crear utilizando un prefijo hash #. El propio JavaScript impone la encapsulación de privacidad de estas características de clase.

Para el error ESLint, agregue un constructor.

 class HomePage { #searchLink: string; constructor() { this.#searchLink = "a[class='search button']"; } clickSearchLink() { cy.get(this.#searchLink).click(); } } export const homePage = new HomePage();

/cypress/tsconfig.json

 { "extends": "../tsconfig.json", "compilerOptions": { "target": "es6", ... }, "include": ["**/*.ts"] }
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda