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

时间:2018-05-16 14:08:15

标签: asynchronous jest puppeteer

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

1 个答案:

答案 0 :(得分:7)

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