La question est donc - comment attendre qu'un élément ait une certaine valeur? Par exemple, certains boutons sur certaines pages modifient la valeur du champ de saisie de "Aucune valeur" à "Valeur X". Le problème est - je ne sais pas combien de temps cela prendra donc page.waitFor () n'est pas une option. Je pensais pouvoir utiliser page.waitForSelector (entrée: contient ('Aucune valeur')); mais cela ne fonctionne pas pour autant que je comprends. Peut-être que page.waitForFunction () devrait fonctionner, mais je ne sais pas quelle fonction y écrire (page.evaluate qui retourne la valeur de l'entrée peut-être?).
Selon docspage.waitForFunction
attendra que la fonction qui lui est passée (comme une fermeture ou une chaîne) retourne une valeur véridique.
const puppeteer = require('puppeteer');
puppeteer.launch({headless : false}).then(async browser => {
const page = await browser.newPage();
await page.goto(url);
await page.waitForFunction('document.getElementById("wait").value != "No Value"');
console.log('Value changed!');
await browser.close();
});