如何使用 Selenium 捕获浏览器 F12 控制台信息
Posted on Wed, 25 Dec 2024 16:13:30 +0800 by LiangMingJian
需求
在执行 Selenium 自动化脚本时,需要捕获浏览器 F12 开发者工具中控制台的信息。
实现
Selenium webdriver 提供方法 get_log('browser') 用来获取浏览器日志。
需要注意的是,对于大部分浏览器,日志记录功能一般不会默认开启。因此,在使用 Selenium 捕获日志时,需要先通过 options.set_capability() 方法,配置浏览器的能力参数,使其能够记录日志。
from selenium import webdriver
import time
service = webdriver.ChromeService(r"F:\Sdk\webdriver\chromedriver.exe")
# 配置浏览器选项并开启日志捕获
chrome_options = webdriver.ChromeOptions()
chrome_options.set_capability('goog:loggingPrefs', {'browser': 'ALL'})
driver = webdriver.Chrome(service=service, options=chrome_options)
driver.maximize_window()
driver.get("https://www.baidu.com")
time.sleep(2)
# 捕获日志
browser_logs = driver.get_log('browser')
print(browser_logs)
time.sleep(10)
driver.quit()
需要注意,上述代码在测试后发现仅对于 Chrome 有用,对于 Edge 或 Firefox 则无法生效。如果有相关修改建议,请在文章评论告知,或等待后续更新。
拓展
对于参数 goog:loggingPrefs,除了支持捕获 browser 浏览器日志外,还支持捕获 performance 性能日志,driver 驱动日志等内容。
...
chrome_options.set_capability(
'goog:loggingPrefs',
{
'browser': 'ALL',
'performance': 'ALL',
'driver': 'ALL'
}
)
...
# 打印捕获的日志类型
print(driver.log_types)
# 浏览器日志
browser_logs = driver.get_log('browser')
print(browser_logs)
# 性能日志
performance_logs = driver.get_log('performance')
print(performance_logs)
# 驱动日志
driver_logs = driver.get_log('driver')
print(driver_logs)