I'm trying to get INFO level browser console log events from Edge using Python/Selenium on PyCharm but current configuration only returns WARNING level logs from browser. I'm using msedge.selenium_tools library intentionally because webdriver library on Edge seems to be deprecated.
import time
from msedge.selenium_tools import EdgeOptions
from msedge.selenium_tools import Edge
from selenium.webdriver.support.select import Select
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
capabilities = DesiredCapabilities.EDGE
capabilities['loggingPrefs'] = {'browser': 'ALL'}
capabilities['acceptInsecureCerts'] = bool(True)
edge_options = EdgeOptions()
edge_options.binary_location = r"C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe"
edge_options.use_chromium = True
driver = Edge(options=edge_options, desired_capabilities=capabilities, executable_path=r"C:\\Users\\myuser\\Documents\\edgedriver_win64\\msedgedriver.exe")
...
Output:
[{'level': 'WARNING', 'message': 'Message I'm getting'}]
According to your description, I tested it with webdriver in Selenium 4.1.0 and found that your requirement can be achieved. And you must to use ms:loggingPrefs instead of loggingPrefs
.
Simple code(work in Edge version 97.0.1072.62):
from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
d = DesiredCapabilities.EDGE
d['ms:loggingPrefs'] = { 'browser':'ALL' }
driver = webdriver.Edge(capabilities=d,executable_path = r"C:\Users\Administrator\Desktop\msedgedriver.exe")
driver.get('<your website url>')
entry = driver.get_log("browser")
print(entry)
After some testing, I found that using the msedge.selenium_tools
library also requires a similar modification to the corresponding code to make it work based on this doc, but I didn't find the corresponding documentation(maybe I missed).
Code sample below:
from msedge.selenium_tools import Edge, EdgeOptions
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
# enable browser logging
capabilities = DesiredCapabilities.EDGE
capabilities['ms:loggingPrefs'] = {'browser': 'ALL'}
capabilities['acceptInsecureCerts'] = bool(True)
# load the desired webpage
edge_options = EdgeOptions()
edge_options.use_chromium = True
edge_options.binary_location = r"C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe"
edge_options.set_capability("ms:edgeOptions",capabilities)
driver = Edge(options = edge_options, executable_path=r"C:\Users\Administrator\Desktop\msedgedriver.exe")
driver.get('https://localhost:44356/Index.html')
# print messages
entry = driver.get_log("browser")
print(entry)
Result like this:
Hope this can help you.