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

630
Visualizações
¿Cuál es la diferencia entre jsHandle y elementHandle en Puppeteer?

He estado leyendo la documentación de la API de Puppeteer, tienen jsHandle y elementHandle (que afirman que es una extensión de jsHandle).

Parece que funciones como page.evaluateHandle page.$ page.$$ pueden devolver jsHandle/elementHandle, que es como un objeto que existe en la página.

Entonces, mi pregunta, ¿qué es jsHandle/elementHandle y cuáles son las diferencias entre los dos además de que uno es una extensión del otro?

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Los documentos dicen :

clase: JSHandle

JSHandle representa un objeto JavaScript en la página. Los JSHandles se pueden crear con el método page.evaluateHandle.

 const windowHandle = await page.evaluateHandle(() => window);

y

clase: ManejaElemento

extiende: JSHandle

ElementHandle representa un elemento DOM en la página. ElementHandles se puede crear con el método page.$.

 const hrefElement = await page.$('a');

En JavaScript, todos los no primitivos son objetos. Muchas cosas a las que puede hacer referencia en una página, como la window en el ejemplo anterior, son objetos para los que puede obtener un JSHandle.

Si puede ejecutar JavaScript nativo en el sitio web y obtener una referencia a un valor que no sea un método primitivo, aunque cualquier método, ese es un objeto, que podría estar potencialmente envuelto en un JSHandle en Puppeteer.

ElementHandle, por otro lado, es más particular. Representa un elemento . Los HTMLElements son objetos, pero no todos los objetos son HTMLElements. Hay algunos métodos que puede hacer con un elemento (y un ElementHandle) que no tienen sentido con objetos genéricos. Por ejemplo, dado un ElementHandle, podría intentar seleccionar un descendiente con .$ o .$$ en Titiritero.

over 4 years ago · Santiago Trujillo 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