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