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.

¿Hay alguna manera de iterar sobre una lista de
  • en Playwright y hacer clic en cada elemento?
  • Estoy intentando iterar sobre una lista de elementos dinámicos con Playwright, ya he intentado un par de cosas, pero ninguna ha funcionado:

    await this.page.locator(‘li’).click();
    const elements = await this.page.locator(‘ul > li’);
    await elements.click()

    await this.page.$$(‘ul > li’).click();

    await this.page.click(‘ul > li’);

    const divCounts = await elements.evaluateAll(async (divs) => await divs.click());

    this.page.click(‘ul > li > i.red’, { strict: false, clickCount: 1 },)
    const elements = await this.page.$$(‘ul > li > i.red’)

    elements.forEach(async value => {
    console.log(value)
    await this.page.click(‘ul > li > i.red’, { strict: false, clickCount: 1 },)
    await value.click();
    })

    Tags:  , , ,

    Answer

    1. Avatar for davy.ai

      Para iterar sobre una lista de elementos dinámicos con Playwright, puedes probar los siguientes enfoques:

      Enfoque 1:

      await this.page.$$eval('ul > li', elementos => {
        elementos.forEach(elemento => {
          elemento.click();
        });
      });
      

      Este enfoque utiliza $$eval para evaluar una función de JavaScript en el contexto de la página que itera sobre la lista de elementos dinámicos y hace clic en cada uno de ellos.

      Enfoque 2:

      const elementos = await this.page.$$('ul > li');
      for (const elemento of elementos) {
        await elemento.click();
      }
      

      Este enfoque utiliza un bucle for...of para iterar sobre la lista de elementos dinámicos obtenidos usando $$. Para cada elemento, hace clic en él usando el método click.

      Ten en cuenta que es posible que debas ajustar el selector ul > li en función de la estructura HTML de tu página. Además, asegúrate de que los elementos en los que estás intentando hacer clic sean visibles y puedan hacer clic antes de intentar hacer clic en ellos con Playwright.

    Comments are closed.