Как получить информацию о сети с панели «Сеть» в Chrome с помощью селена?

Я пытаюсь выполнить конкретную задачу, используя Selenium и Python, но у меня возникают некоторые проблемы. Я использую : Версия Chrome 111.0.5563.147 Селен 4.8.2 Питон 3.11.

Когда я пытаюсь получить журналы производительности с помощью «driver.get_log('performance')», я получаю следующее сообщение об ошибке: «недопустимый аргумент: тип журнала «производительность» не найден». Мне интересно, связано ли это с тем, что версия Chrome, которую я использую, не поддерживает журналы производительности, или мне не хватает чего-то еще. Мы будем очень признательны за любые идеи или предложения. Спасибо!

Вот мой код:

def get_driver():
    
    os.popen('chrome.exe --remote-debugging-port=9222 --user-data-dir = "C:\\selenum\\AutomationProfile"')
    global driver

    caps = DesiredCapabilities.CHROME
    caps['loggingPrefs'] = {'performance': 'ALL'}

    chrome_options = Options()
    chrome_options.add_argument('--enable-logging')
    chrome_options.set_capability('loggingPrefs', {'performance': 'ALL'})
    chrome_options.add_experimental_option("debuggerAddress","127.0.0.1:9222")
    chrome_options.set_capability("goog:chromeOptions", {"w3c": False})
    chrome_driver = "chromedriver.exe"
    #driver = webdriver.Chrome(chrome_driver, options=chrome_options, desired_capabilities=caps)
    driver = webdriver.Chrome(chrome_driver, desired_capabilities=caps, options=chrome_options)

    #print(driver.title)
    global wait
    wait = WebDriverWait(driver, 10, 0.2)

58
1

Ответ:

Решено

Я думаю, это то, что вы ищете

network_info = driver.execute_script("var performance = window.performance || window.mozPerformance || "
                                             "window.msPerformance || window.webkitPerformance || {}; var network = "
                                             "performance.getEntries() || {}; return network;")
print(network_info)

Используйте его после инициализации драйвера, например

driver = get_diver() # returns the driver object
network_info = driver.execute_script("var performance = window.performance || window.mozPerformance || "
                                             "window.msPerformance || window.webkitPerformance || {}; var network = "
                                             "performance.getEntries() || {}; return network;")
print(network_info)

Он будет генерировать вывод, подобный этому

[{'activationStart': 0, 
  'connectEnd': 17.200000017881393,
  'connectStart': 17.200000017881393,
  'decodedBodySize': 0,
  'domComplete': 296.90000000596046,
  'domContentLoadedEventEnd': 296.40000000596046,
  'domContentLoadedEventStart': 296.40000000596046,
  'domInteractive': 296.40000000596046,
  'domainLookupEnd': 17.200000017881393,
  'domainLookupStart': 17.200000017881393,
  'duration': 296.90000000596046,
  'encodedBodySize': 0,
  'entryType': 'navigation',
  'fetchStart': 17.200000017881393,
  'initiatorType': 'navigation',
  'loadEventEnd': 296.90000000596046,
  'loadEventStart': 296.90000000596046,
  'name': '',
  'nextHopProtocol': '',
  'redirectCount': 0,
  'redirectEnd': 0,
  'redirectStart': 0,
  'renderBlockingStatus': 'non-blocking',
  'requestStart': 17.200000017881393,
  'responseEnd': 103.09999999403954,
  'responseStart': 17.200000017881393,
  'responseStatus': 0,
  'secureConnectionStart': 17.200000017881393,
  'serverTiming': [],
  'startTime': 0,
  'toJSON': {},
  'transferSize': 300,
  'type': 'navigate',
  'unloadEventEnd': 0,
  'unloadEventStart': 0,
  'workerStart': 0}]