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();
});
所以问题是 - 如何等到元素具有特定值? 例如,某个页面上的某个按钮将输入字段的值从 "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();
});