Я пытаюсь создать автоматизацию для своей учетной записи Linkedin, чтобы всякий раз, когда я получаю сообщение, я хотел сделать с ним что-то особенное.
Я использую Puppeteer и MutationObserver внутри вызова page.evaluate после загрузки моего профиля в Linkedin с моим сеансом li_at cook ie.
Но он не запускает событие, даже когда я вижу, что узел изменяет textContent.
const puppeteer = require('puppeteer');
(async function main() {
try {
const browser = await puppeteer.launch({ devtools: true, headless: false });
const page = await browser.newPage();
await page.setBypassCSP(true);
await page.setDefaultNavigationTimeout(0);
await page.setCookie({
'name': 'li_at',
'value': 'putYourSessionCookieHere',
'domain': '.www.linkedin.com'
})
await page.goto('https://www.linkedin.com', {waitUntil: 'networkidle2'});
await page.exposeFunction('puppeteerMutationListener', puppeteerMutationListener);
await page.evaluate(() => {
const target = document.querySelector('#messaging-nav-item .nav-item__badge-count');
const observer = new MutationObserver((mutationsList) => {
for (const mutation of mutationsList) {
window.puppeteerMutationListener(
mutation.removedNodes[0].textContent,
mutation.addedNodes[0].textContent,
);
}
});
observer.observe(
target,
{ childList: true},
);
});
} catch (err) {
console.error(err);
}
})();
function puppeteerMutationListener(oldValue, newValue) {
console.log(`${oldValue} -> ${newValue}`);
}
Чтобы воспроизвести проблему, вам потребуется:
- Учетная запись Linkedin
- Полезный коллега с учетной записью linkedin, готовый отправлять вам сообщения ИЛИ вы можете самостоятельно изменить textContent узла
Есть идеи, почему это может происходить?