Можно ли вызвать событие, если браузер кукловода находится на определенном URL-адресе или имеет определенный элемент на веб-странице? - PullRequest
2 голосов
/ 05 мая 2019

Можно ли вызвать событие через кукловода, если браузер находится на определенном URL или имеет определенный элемент на веб-странице?

У меня открыт браузер, пользователь взаимодействует со страницей и делает все, что ему захочется, пока он не попадет по определенному URL. Можно ли вызвать подобное событие?

1 Ответ

1 голос
/ 05 мая 2019

Да, это возможно. Оба варианта, которые вы описываете, являются жизнеспособными. Проще всего было бы проверить поступающие запросы.

Проверка запросов / URL

Вот пример кода, который проверяет, какие запросы происходят, перечисляя событие request. Имейте в виду, что запрос может происходить где угодно на странице (например, в iframe). В зависимости от вашего варианта использования, вы можете также захотеть проверить, произошел ли запрос на главной странице (используя page.url()).

page.on('request', request => {
  const url = request.url();
  if (url === '...') {
     // trigger event
  }
});

Проверка элемента

Если вы хотите проверить, присутствует ли конкретный элемент на странице, вы можете дождаться события domcontentloaded, а затем проверить, присутствует ли элемент:

page.on('domcontentloaded', () => {
  const element = page.$('#element-selector');
  if (element) {
    // element is present, trigger event
  }
});

Имейте в виду, что это будет проверяться только один раз . Чтобы постоянно проверять наличие элемента, вы можете использовать MutationObserver (см. Пример для здесь ).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...