Puppeteer - 等待元素具有一定的价值

Puppeteer - wait for element to have certain value

所以问题是 - 如何等到元素具有特定值? 例如,某个页面上的某个按钮将输入字段的值从 "No Value" 更改为 "Value X"。问题是 - 我不知道需要多少时间,所以 page.waitFor() 不是一个选项。 我以为我可以使用 page.waitForSelector(input:contains('No Value'));但据我所知,这是行不通的。 可能 page.waitForFunction() 应该工作,但我不确定在那里写什么函数(page.evaluate 输入的 returns 值可能?)。

根据 docs page.waitForFunction 将等待函数传递给它(作为闭包或字符串)returns 真值。

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