Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

299
Views
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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!