Chrome - 在网络上自动打开 devtools 并保留日志

问题描述

我正在使用 playwright 进行测试自动化。 每次测试运行都会创建一个新的 Chromium 实例。 当我通过 --auto-open-devtools-for-tabs 时,它会按预期打开 devtools。 但是,我需要更进一步并启用复选框 Perserve Log。 测试速度很快,我需要在重定向前查看请求。

解决方法

基于 this answer,一种技巧是使用 persistent_context 加载浏览器,关闭浏览器,然后编辑首选项文件设置 Preserve log 值。

user_data_dir = './prefs'
pref_file_path = user_data_dir + '/Default/Preferences'
browser = playwright.chromium.launch_persistent_context(user_data_dir,headless=False,args= ['--auto-open-devtools-for-tabs'])
browser.close()

with open(pref_file_path,'r') as pref_file:
    data = json.load(pref_file)

data['devtools'] = {
    'preferences': {
        'network_log.preserve-log': '"true"'
    }
}

with open(pref_file_path,'w') as pref_file:
    json.dump(data,pref_file)

browser = playwright.chromium.launch_persistent_context(user_data_dir,args= ['--auto-open-devtools-for-tabs'])
page = browser.new_page()
page.goto('https://stackoverflow.com/questions/63661366/puppeteer-launch-chromium-with-preserve-log-enabled')