открыть Chrome Devtool инспектор-инспектор в селен - PullRequest
0 голосов
/ 07 декабря 2018

Я хочу сохранить (безопасный) трафик WebSocket с некоторых веб-страниц.Я попытался сохранить HAR, используя chrome-devtool.Но, очевидно, это не экономит трафик WebSocket .Тем не менее, я нашел этот ответ , который предлагает мне регистрировать все запросы, если я могу изменить SDK и регистрировать все SDK.networkLog.requests().Тем не менее, для запуска SDK кода мне нужно открыть chrome inspector-inspector из Selenium.Я знаю, что могу открыть инструмент разработки, используя селен из этот ответ .Любое предложение о том, как открыть inspector-inspector?Или альтернативный способ входа WebSocket?Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 14 декабря 2018

Таким образом, вы можете использовать протокол удаленной отладки Chrome в качестве решения. Запуск Chrome 63, даже если Selenium контролирует браузер, другие клиенты могут подключаться к Chrome и отлаживать его. Вы можете запустить Chrome с опцией --remote-debugging-port.Я лично не работал над регистрацией трафика веб-сокетов, но работал над некоторым профилированием Chrome, и это должно помочь.Вот некоторые ресурсы для вашего обзора: Средство просмотра протокола Chrome dev проверьте, может ли этот ресурс помочь chrome-remote-interface также эти инструменты разработки Selenium + Chrome делают идеальный браузерРецепт автоматизации

0 голосов
/ 14 декабря 2018

Вы можете использовать wshook для перехвата и изменения запросов WebSocket и событий сообщений.Используя executeScript() или execute_script(), добавьте на страницу следующий скрипт.

(function() {
  window.sentMessage = [];
  window.receivedMessage = [];
  var s = document.createElement('script');
  s.src = 'https://cdn.jsdelivr.net/gh/skepticfx/wshook@0.1.1/wsHook.js';
  s.onload = function() {
    window.wsHook.before = function(data, url) {
      window.sentMessage.push(data);
      console.log("Sending message to " + url + " : " + data);
    }

    window.wsHook.after = function(messageEvent, url, wsObject) {
      window.receivedMessage.push(messageEvent.data);
      console.log("Received message from " + url + " : " + messageEvent.data);
      return messageEvent;
    }
  }
  document.body.appendChild(s)
})(); 

После выполнения кода, приведенного выше, вы можете получить массив данных из переменных window.sentMessage и window.receivedMessage

...