web-dev-qa-db-ja.com

Puppeteer-要素が特定の値になるのを待ちます

だから問題は-要素が特定の値になるまで待つ方法ですか?たとえば、特定のページの一部のボタンは、入力フィールドの値を「値なし」から「値X」に変更します。問題は-どのくらい時間がかかるかわからないので、page.waitFor()はオプションではありません。私はpage.waitForSelector(input:contains( 'No Value'));を使用できると思いましたしかし、それは私が理解している限りでは機能しません。おそらくpage.waitForFunction()は機能するはずですが、そこに書き込む関数がわかりません(page.evaluateが入力の値を返す可能性がありますか?)。

docs によると、page.waitForFunctionは(クロージャまたは文字列として)渡された関数が真の値を返すまで待機します。

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