Как в puppeteer слушать обновление DOM элементов на странице?
const puppeteer = require('puppeteer');
const path = require('path')
const fs = require('fs');
async function main() {
let browser = await puppeteer.launch(
{
headless: false,
args: [
'--disable-web-security',
'--disable-features=IsolateOrigins,site-per-process',
`--window-size=1200,1200`,
"--window-position=000,000",
"--disable-dev-shm-usage",
"--no-sandbox",
"--disable-web-security",
"--disable-features=site-per-process",
]
});
let page = await browser.newPage();
await page.goto('https://example.com');
await page.waitForSelector('[data-peer-id*="27072"]');
}
main().catch((e) => {
throw e
})
У меня на странице есть несколько div блоков доступных по маске [data-peer-id*="27072"]
Время от времени на странице появляются новые блоки, подскажите как я могу увидеть изменение в DOM дереве (что были добавлены новые блоки [data-peer-id*="27072"])
И Вызвать функцию при обновлении страницы - передав туда этот элемент?
Пытался сделать так: https://github.com/puppeteer/puppeteer/issues/3719 но там код с ошибкой, не смог воспроизвести код.
UPDATE: Нашел как задетектить изменения, но не понял как вызвать функцию внутри puppeteer
async function main() {
let browser = await puppeteer.launch(
{
headless: false,
args: [
'--disable-web-security',
'--disable-features=IsolateOrigins,site-per-process',
`--window-size=1200,1200`,
"--window-position=000,000",
"--disable-dev-shm-usage",
"--no-sandbox",
"--disable-web-security",
"--disable-features=site-per-process",
]
});
let page = await browser.newPage();
await page.goto('https://example.com');
await page.waitForSelector('[data-peer-id*="27072"]');
await page.evaluate(() => {
document.querySelector('section[class*="bubbles-date-group"]').addEventListener ("DOMSubtreeModified", function(e) {
console.log('Update');
})
});
}