Chrome Python浏览器控制台日志对象

i34xakig  于 2023-05-27  发布在  Go
关注(0)|答案(1)|浏览(178)

我目前正在使用selenium从chrome浏览器获取控制台日志。我的安装代码是这样的,它可以很好地获取控制台日志

from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

# enable browser logging
d = DesiredCapabilities.CHROME
d['goog:loggingPrefs'] = { 'browser':'ALL' }
driver = webdriver.Chrome(desired_capabilities=d)

# load the desired webpage
driver.get(http://192.168.5.5)

# print messages
for entry in driver.get_log('browser'):
    print(entry)

问题是entry是一个包含Object字符串的字典。我无法访问此对象内部的内容。在一个真实的的浏览器中,我可以扩展这些对象,并查看更多的信息,这些信息通常是以字典的形式出现的。我如何在python中访问这些控制台日志对象,就像我在浏览器上一样?如果在 selenium 中不可能,它不必通过 selenium 。
编辑:
输入的输出示例:

{'level': 'INFO', 'message': 'http://192.168.5.5/app.e52b3dcc.bundle.js 58:31633 "[END REQUEST]: Response:" Object Object', 'source': 'console-api', 'timestamp': 1663609942539}

在浏览器中展开的对象的示例(复制和粘贴在这里看起来不太好,但你明白了):

```END REQUEST]: Response: 
Object
data1
: 
"SOMEPIECEOFDATA"
response
: 
{moreData: {…}, status: 1, type: 'response'}
[[Prototype]]
: 
Object
mtb9vblg

mtb9vblg1#

你的代码基本上是有效的。以这个页面和你的问题为例:

caps['goog:loggingPrefs'] = {'browser':'ALL' }
[...]
url = 'https://stackoverflow.com/questions/73778005/python-browser-console-log-objects'
driver.get(url)
logs = driver.get_log('browser')
for item in logs:
    print(item)

终端结果:

{'level': 'WARNING', 'message': "security - Error with Feature-Policy header: Unrecognized feature: 'speaker'.", 'source': 'security', 'timestamp': 1663614945300}
{'level': 'WARNING', 'message': 'https://pagead2.googlesyndication.com/gpt/pubads_impl_2022091301.js 9:37758 "The following functions are deprecated: googletag.pubads().setTagForChildDirectedTreatment(), googletag.pubads().clearTagForChildDirectedTreatment(), googletag.pubads().setRequestNonPersonalizedAds(), and googletag.pubads().setTagForUnderAgeOfConsent(). Please use googletag.pubads().setPrivacySettings() instead."', 'source': 'console-api', 'timestamp': 1663614947286}

也许您需要研究日志记录过程本身?

相关问题