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

305
Visualizações
Comprobar si el elemento está visible en Playwright

Estoy usando Playwright 1.15.2 para probar y enfrentar un problema con la visibilidad de los elementos. Quiero verificar si un modal está visible en la pantalla para poder cerrarlo. El modal comienza con display:none y se convierte en display:block . Además, el modal informa la incorrección en los datos del formulario, por lo que puede aparecer o no (es decir, no puedo esperar a waitForSelector ).

Actualmente, tengo un código similar al siguiente:

 const myModal = await page.$("#modal"); if (await myModal.isVisible()) { await page.waitForSelector('#modal > .modal-dialog > .modal-content > .modal-footer > .btn-close'); await page.click('#modal > .modal-dialog > .modal-content > .modal-footer > .btn-close'); }

También he intentado:

 const myModal = await page.$("#modal:visible"); if (myModal) { ...

Usar page.$("text=modal title >> visible=true") o cambiar page.$ a page.locator (con todos los selectores antes mencionados) tampoco funcionó.

La respuesta aceptada para esta pregunta no funcionó tan bien.

¿Alguien podría ayudarme con eso?

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

0

page.$("text=modal title >> visible=true") no espera hasta que el elemento esté en el DOM y sea visible.

necesitas usar:

await expect(page.locator("text=modal title")).toBeVisible()

ver aquí: https://playwright.dev/docs/test-assertions#expectlocatortobevisibleoptions

about 4 years ago · Juan Pablo Isaza Relatório

0

Lo resolví usando waitFor con un state diferente

 constructor(page: Page) { this.page = page; this.myElement = page.locator('div.myElement'); } async isMyElementVisible() { await this.myElement.waitFor({ state: 'visible' }); return await this.myElement.isVisible(); } async isMyElementHidden() { await this.myElement.waitFor({ state: 'hidden' }); return await this.myElement.isHidden(); }
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