web-dev-qa-db-fra.com

Est-il possible de modifier un élément dans DOM avec marionnettiste avant de créer une capture d'écran?

Je suis un nouveau marionnettiste, mais assez à l'aise avec javascript et Node.js, mais j'ai rencontré un problème où j'ai un processus Node qui capture une capture d'écran assez simple. Est-il possible de modifier le texte interne de un élément HTML à l'aide de marionnettiste, juste avant l'acquisition de la capture d'écran?

J'ai réussi à utiliser marionnettiste pour taper du texte dans les champs d'authentification et à me connecter à un site, mais je me demandais s'il existe une méthode similaire qui me permettrait de modifier le texte dans un élément spécifique (en utilisant un identifiant ou un nom de classe)

Exemple du code de capture d'écran que j'utilise:

const puppeteer = require('puppeteer');
 (async () => {
    const browser = await puppeteer.launch()
    const page = await browser.newPage()
    await page.goto('https://google.com')
    await page.screenshot({path: 'google.png'})
    await browser.close()
 })()

donc dans cet exemple, je serais intéressé de savoir si je peux changer le contenu textuel d'un élément tel que le div avec l'ID 'lga' ... en ajoutant une chaîne de texte par exemple.

Est-ce possible avec un marionnettiste?

Sinon, cela fonctionne très bien, j'ai juste besoin d'insérer du texte dans la page dont je fais une capture d'écran. J'utilise la ligne de commande uniquement sur une machine Ubuntu 16.04 et la version 9 du nœud, la version 1.0.0 du marionnettiste

11
tamak

vous pouvez le faire avant l'écran

 await page.evaluate(() => {
    let dom = document.querySelector('#id');
    dom.innerHTML = "change to something"
 });
25
Cr.