web-dev-qa-db-fra.com

Marionnettiste - attendre que l'élément ait une certaine valeur

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();
});
12
Vaviloff