es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

hacer clic en un botón dentro de un menú desplegable en Playwright

Aquí está el HTML del objeto:

<div class="filter-component filter-component-1">
   <p class="usa-accordion__heading">
     <button aria-selected="false" class="filtered assignment usa-accordion__button filter-dropdown ds-c-button ds-u-padding-left--1 ds-u-padding-right--4 ds-u-padding-y--1" aria-expanded="false" aria-controls="a1">
       <span>Medicare-approved payment: Full Payment </span>
       <div class="filter-arrow down"></div>
     </button>
   </p>
</div>

Mi objetivo es obtener el div con la clase “filter-component-1” y almacenarlo en una variable para luego:

  1. Hacer clic en ese div.
  2. Hacer clic en el botón dentro de ese div.

Siento que necesito hacer algo como:

let dropdowndiv = await this.page.waitForSelector(".filter-component-1");

¿Pero luego qué?

Lo siento, soy nuevo en playwright y los documentos son bastante inútiles =(
https://playwright.dev/java/docs/selectors#selecting-elements-that-contain-other-elements

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para hacer clic en el div con la clase filter-component-1 y luego en el botón dentro de él, puedes usar el siguiente código:

    // Selecciona el div con la clase "filter-component-1"
    let dropdowndiv = await this.page.waitForSelector(".filter-component-1");
    
    // Haz clic en el div
    await dropdowndiv.click();
    
    // Espera a que aparezca el botón dentro del div, luego selecciónalo y haz clic en él
    let button = await dropdowndiv.waitForSelector(".filtered.assignment.usa-accordion__button");
    await button.click();
    

    Explicación:

    • let dropdowndiv = await this.page.waitForSelector(".filter-component-1"); selecciona el div con la clase filter-component-1 y lo almacena en la variable dropdowndiv.
    • await dropdowndiv.click(); hace clic en el div.
    • let button = await dropdowndiv.waitForSelector(".filtered.assignment.usa-accordion__button"); espera a que aparezca el botón dentro del div, lo selecciona y lo almacena en la variable button.
    • await button.click(); hace clic en el botón.

    Espero que esto te ayude.

Comments are closed.