だから問題は-要素が特定の値になるまで待つ方法ですか?たとえば、特定のページの一部のボタンは、入力フィールドの値を「値なし」から「値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();
});