python - Selenium Chrome 看不到浏览器日志 InvalidArgumentException
问题描述
在使用 Python 使用 selenium webdriver 打开网站后,我试图获取HTTP 状态代码,我看到无法获取HTTP 状态代码,所以唯一的方法是获取网络日志并从那里获取HTTP 状态代码
所以我试图用硒打印日志,但它给了我一个InvalidArgumentException
from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
# enable browser logging
d = DesiredCapabilities.CHROME
d['loggingPrefs'] = { 'performance':'ALL' }
driver = webdriver.Chrome(desired_capabilities=d)
# load the desired webpage
driver.get('http://foo.com')
# print messages
for entry in driver.get_log('performance'):
print(entry)
这是运行后的错误
InvalidArgumentException Traceback (most recent call last)
<ipython-input-13-8480733201dc> in <module>
12
13 # print messages
---> 14 for entry in driver.get_log('performance'):
15 print(entry)
c:\users\slimshady\appdata\local\programs\python\python37-32\lib\site-packages\selenium\webdriver\remote\webdriver.py in get_log(self, log_type)
1260 driver.get_log('server')
1261 """
-> 1262 return self.execute(Command.GET_LOG, {'type': log_type})['value']
c:\users\slimshady\appdata\local\programs\python\python37-32\lib\site-packages\selenium\webdriver\remote\webdriver.py in execute(self, driver_command, params)
319 response = self.command_executor.execute(driver_command, params)
320 if response:
--> 321 self.error_handler.check_response(response)
322 response['value'] = self._unwrap_value(
323 response.get('value', None))
c:\users\slimshady\appdata\local\programs\python\python37-32\lib\site-packages\selenium\webdriver\remote\errorhandler.py in check_response(self, response)
240 alert_text = value['alert'].get('text')
241 raise exception_class(message, screen, stacktrace, alert_text)
--> 242 raise exception_class(message, screen, stacktrace)
243
244 def _value_or_default(self, obj, key, default):
InvalidArgumentException: Message: invalid argument: log type 'performance' not found
(Session info: chrome=75.0.3770.80)
我在这里可能做错了什么?
解决方案
正如Chrome 驱动程序 75的发行说明中所指定的,根据 W3C 标准的要求,功能loggingPrefs
已重命名为。goog:loggingPrefs
因此,应该调整设置功能的代码,并且至少由于日志捕获的原因,没有必要回退到非 w3c 模式。
d['goog:loggingPrefs'] = { 'performance':'ALL' }
推荐阅读
- r - 在ggplot2中向具有多个变量的直方图添加密度线
- sql - 基于查询结果的postgres中的递归函数
- java - 以偏移格式解析时间戳
- java - 如何使片段背景透明?
- java - 使用3个类实现程序错误
- angular - 复选框角度中的Getter和Setter
- python - 计算 Nympy 2D 数组的 mean(),按单独列表中的值分组,字符串对应于 2D 数组中的每一行
- terraform - 使用一个循环和多个字符串创建语句遍历映射列表
- laravel - [路由:bricks.update] [URI:bricks/{brick}] 缺少必需的参数。(查看:/home/Development/ad-et/resources/views/bricks/edit.blade.php)
- javascript - 每当 Firebase 数据库中的值发生变化时更新记录的云函数(值 = 值 + 新值)