Если всплывающее окно всегда будет появляться в начале сеанса, вы можете использовать page.waitForSelector()
:
await page.waitForSelector('#popup', {visible: true});
await page.click('#popup'); // Close Popup
В качестве альтернативы, если элемент динамически добавляется встраницы и может не отображаться, вы можете использовать интерфейс MutationObserver
, чтобы отслеживать элемент, добавляемый в дерево DOM, и щелкнуть по нему:
await page.evaluate(() => {
const observer = new MutationObserver(mutations => {
mutations.forEach(mutation => {
for (let i = 0; i < mutation.addedNodes.length; i++) {
if (mutation.addedNodes[i].id === 'popup' && window.getComputedStyle(mutation.addedNodes[i]).display !== 'none') {
mutation.addedNodes[i].click(); // Close Popup
}
}
});
});
observer.observe(document, {subtree: true});
});