0

我正在尝试使用 PyCharm 上的 Python/Selenium 从 Edge 获取 INFO 级别的浏览器控制台日志事件,但当前配置仅从浏览器返回 WARNING 级别的日志。我有意使用 msedge.selenium_tools 库,因为 Edge 上的 webdriver 库似乎已被弃用。

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")

     ...

输出:

[{'level': 'WARNING', 'message': 'Message I'm getting'}]
4

1 回答 1

0

根据您的描述,我在 Selenium 4.1.0 中使用 webdriver 进行了测试,发现可以达到您的要求。而且您必须使用ms:loggingPrefs而不是loggingPrefs.

简单代码(在 Edge 版本 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)

编辑:

经过一番测试,我发现使用该msedge.selenium_tools库也需要对相应的代码进行类似的修改,以使其基于this doc工作,但我没有找到相应的文档(可能我错过了)。

下面的代码示例:

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)

结果如下:

在此处输入图像描述

希望这可以帮到你。

于 2022-01-17T11:20:47.933 回答