Estoy usando titiritero con nodo y expreso en Ubuntu.
Básicamente, tengo un punto final que, cuando lo llamo en un navegador, devuelve una captura de pantalla del titiritero.
Sin embargo, lo extraño es que cada vez que hago eso, la página en Chrome parpadea (no me estoy quedando sin cabeza porque quiero ver qué está pasando).
Aquí hay un video de lo que está sucediendo:
Esto causa algunos problemas extraños en los que, en algunos sitios web donde hay menús o ventanas emergentes que se cierran cuando haces clic afuera, cuando tomas una captura de pantalla, esa ventana emergente o menú desaparece.
Aquí hay otro ejemplo con la página Acerca de de Google que ilustra eso:
Así es como se ve actualmente mi punto final que obtiene la captura de pantalla:
app.get("/ss/:id/*", async (req, res) => { const { id } = req.params; const page = await getPage(id); const { resolution } = req.cookies; let [width, height] = (resolution as string) .split("x") .map((o) => parseFloat(o)); width = Math.max(width, 1) - 4; // for netscape; height = Math.max(height, 1) - 4; // for nestcape; const ss = await page.screenshot({ quality: 100, encoding: "binary", type: "jpeg", clip: { x: 0, y: 0, width, height }, }); res.type("jpg"); res.send(ss); });He intentado usar PNG en lugar de jpeg, también lo he intentado sin el clip. Con y sin configurar la ventana gráfica.
No entiendo por qué sucede esto.
¿Alguien ha visto este comportamiento antes y sabe cómo solucionarlo?
¡Gracias!