python - Python:Selenium:无法获取浏览器控制台日志
问题描述
早上好,
我试图访问 Web 应用程序并收集浏览器控制台日志(Web Developer -> Web Console)。
我收到一个错误
File "test1.py", line 28, in <module>
logs = driver.get_log('browser')
File "C:\Python\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 1262, in get_log
return self.execute(Command.GET_LOG, {'type': log_type})['value']
File "C:\Python\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "C:\Python\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 208, in check_response
raise exception_class(value)
selenium.common.exceptions.WebDriverException: Message: HTTP method not allowed
我的代码是这样的。
from selenium import webdriver
from selenium.webdriver.firefox.options import Options
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.action_chains import ActionChains
import time
from selenium.webdriver.support.ui import WebDriverWait
binary = r'C:\Program Files\Mozilla Firefox\firefox.exe'
options = Options()
options.binary = binary
cap = DesiredCapabilities().FIREFOX
cap["marionette"] = True
cap['loggingPrefs'] = {'driver': 'ALL'}
driver = webdriver.Firefox(firefox_options=options, capabilities=cap, executable_path="C:\Python\geckodriver.exe")
driver.get('https://facebook.com')
time.sleep(2) # time for page to load
logs = driver.get_log('browser')
messages = map(lambda l: l['message'], logs)
has_console_logs = any(map(lambda m: m.find('console log') >= 0, messages))
print('Success' if has_console_logs else 'Failure')
driver.quit()
解决方案
推荐阅读
- python - 如何使用 pl/python 3 在 Windows 服务器上运行多进程?
- python - 在整个程序中访问金字塔设置
- solr - 为什么 Solr 搜索查询会返回这么大的摘录?
- python - 在异步循环中定义一次变量?Python 请求
- python - PlotLy:无法在子图上绘制烛台图
- sql - 如何估计 Azure SQL PiTR 备份的存储大小
- go - 如何根据go中的日期列对csv数据进行排序
- git - 在 Rebase 期间升级 git 版本
- javascript - 提高 contenteditable 打字性能
- postgresql - 在已创建 postgres12 数据库后安装 postgresql12-devel