Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

191
Vistas
Convierta el código javascript en titiritero con el método .pop

Soy nuevo en titiritero y trato de convertir este código javascript:

 let messageElement; await driver.findElements(By.className("message-list-item")).then( (ok) => { messageElement = ok.pop() } ) await messageElement.getAttribute("id").then( (ok) => { messageNum = parseInt(ok.split("message")[1]); } )

El método ".pop ()" debe convertirse y sé que con titiritero podemos usar "longitud - 1", pero no puedo. He intentado esto:

 const el = await page.$('.message-list-item') .then( (elements) => elements[el.length - 1]);

Pero no trabajo.

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Esto no tiene nada que ver con "convertir .pop() en titiritero". pop es una función estándar en el prototipo Array. De acuerdo con los documentos del titiritero, la page.$(<selector>) realiza un querySelector en los nodos DOM, que devuelve el nodo DOM directamente en lugar de una matriz de nodos DOM, por lo que no necesita usar pop ni ninguna otra matriz. función.

 const el = await page.$('.message-list-item') .then( (element) => element));

que es equivalente a

 const el = await page.$('.message-list-item');

EDITAR

Si desea el último elemento con ese nombre de clase, debe obtener una lista de esos elementos, para lo cual puede usar $$ que, según los documentos, usa querySelectorAll y luego obtener el último elemento.

 const el = await page.$$('.message-list-item', (e) => e[e.length - 1]);
about 4 years ago · Juan Pablo Isaza Denunciar

0

Con :

 const h4All = await page.$$('.message-list-item'); const h4Count = h4All.length; const fileName = h4All[h4Count - 1]; const id= await (await fileName.getProperty("id")).jsonValue(); console.log(await id); messageNum = parseInt(id.split("message")[1]); console.log(messageNum);

Es trabajo, gracias por tu ayuda! ¿Puedo preguntarte otro problema? Tengo este javascript:

 let messageNum = 0; let lastMessageElement let y = false; while(!y){ console.log("Message de recherche " + messageNum); await driver.findElement(By.id("message"+messageNum.toString())).then( (ok) => { console.log("Trouvé"); y = true; lastMessageElement = ok; }, (error) => { console.log("Error"); } ) if(!y) await driver.sleep(5000); }

Intenta convertir en titiritero:

 let messageNum = 0; let lastMessageElement let y = false; while(!y){ console.log("Message de recherche " + messageNum); const lastMessageElement = await page.$$("message"+messageNum.toString()); console.log(lastMessageElement); if (lastMessageElement) { console.log("Trouvé"); console.log(lastMessageElement); y = true; } else { console.log("Error"); } if(!y) await page.waitForTimeout(5000); }

Pero no es bueno... Gracias de nuevo

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda