Я пытаюсь выполнить конкретную задачу, используя 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)
Я думаю, это то, что вы ищете
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}]