NodeJS Ручка всплывающая с кукловодом - PullRequest
0 голосов
/ 23 марта 2020

В учебных целях со специальной страницы c на Amazon я нажимаю кнопку, открывающую внутреннее «всплывающее окно». Таким образом, Puppeteer не видит всплывающее окно, и я не могу щелкать и обрабатывать элементы.

Давайте начнем с https://www.amazon.de/.

Используя puppeteer, я запускаю:

await page.evaluate(() =>{
        document.querySelector('.nav-a.nav-a-2.a-popover-trigger.a-declarative').click();
        }
      });

Открывается внутреннее всплывающее окно.

Как мне справиться с этой новой внутренней страницей: набрать текст в поле ввода и нажмите на элементы?

1 Ответ

2 голосов
/ 24 марта 2020

На самом деле это не всплывающее окно, а поповер. Он будет виден и доступен в DOM после того, как вы на самом деле нажмете на селектор

await page.evaluate(() =>{
   document.querySelector('.nav-a.nav-a-2.a-popover-trigger.a-declarative').click();
});

Чтобы быть уверенным, что вы можете работать с поповером, вам нужно дождаться загрузки.

await page.waitForSelector(".a-popover.a-popover-modal.a-declarative");

После что вы можете нажать и ввести нужный текст в всплывающем окне.

...