正在使用Python初始化MSEdge浏览器,获取TypeError:Level不是整数或有效字符串:无

本教程将介绍正在使用Python初始化MSEdge浏览器,获取TypeError:Level不是整数或有效字符串:无的处理方法,这篇教程是从别的地方看到的,然后加了一些国外程序员的疑问与解答,希望能对你有所帮助,好了,下面开始学习吧。

正在使用Python初始化MSEdge浏览器,获取TypeError:Level不是整数或有效字符串:无 教程 第1张

问题描述

我正在尝试初始化MSedge浏览器,但遇到错误。

from selenium import webdriver
from selenium.webdriver.edge.service import Service
from webdriver_manager.microsoft import EdgeChromiumDriverManager

s=Service(EdgeChromiumDriverManager().install())
driver = webdriver.Edge(service=s)
driver.get('https://www.google.com')

错误声明:

TypeErrorTraceback (most recent call last)
<ipython-input-2-4e36192a99d3> in <module>
3 from webdriver_manager.microsoft import EdgeChromiumDriverManager
4 
----> 5 s=Service(EdgeChromiumDriverManager().install())
6 driver = webdriver.Edge(service=s)
7 driver.maximize_window()

~Anaconda3libsite-packageswebdriver_managermicrosoft.py in __init__(self, version, os_type, path, name, url, latest_release_url, log_level, print_first_line, cache_valid_range)
  49cache_valid_range=1,
  50  ):
---> 51super().__init__(path, log_level, print_first_line, cache_valid_range)
  52self.driver = EdgeChromiumDriver(
  53 version=version,

~Anaconda3libsite-packageswebdriver_managermanager.py in __init__(self, root_dir, log_level, print_first_line, cache_valid_range)
  10self.driver_cache = DriverCache(root_dir, cache_valid_range)
  11if os.environ.get('WDM_PRINT_FIRST_LINE', str(print_first_line)) == 'True':
---> 12 log("
", formatter='%(message)s', level=log_level)
  13log("====== WebDriver manager ======", level=log_level)
  14 

~Anaconda3libsite-packageswebdriver_managerlogger.py in log(text, level, name, first_line, formatter)
  23 def log(text, level=logging.INFO, name="WDM", first_line=False, formatter='[%(name)s] - %(message)s'):
  24  """Emitting the log message."""
---> 25  _init_logger(level, name, first_line, formatter)
  26  loggers.get(name).info(text)

~Anaconda3libsite-packageswebdriver_managerlogger.py in _init_logger(level, name, first_line, formatter)
  17handler.setFormatter(formatter)
  18_logger.addHandler(handler)
---> 19_logger.setLevel(level)
  20loggers[name] = _logger
  21 

~Anaconda3liblogging__init__.py in setLevel(self, level)
1407Set the logging level of this logger.  level must be an int or a str.
1408"""
-> 1409self.level = _checkLevel(level)
1410self.manager._clear_cache()
1411 

~Anaconda3liblogging__init__.py in _checkLevel(level)
 195rv = _nameToLevel[level]
 196  else:
--> 197raise TypeError("Level not an integer or a valid string: %r" % level)
 198  return rv
 199 

TypeError: Level not an integer or a valid string: None

我使用的是WebDRIVER_MANAGER 3.5.2和Selify 4.0.0请帮帮我
在解决这个问题上。如果你需要任何细节,请告诉我。谢谢
预付

推荐答案

这是WebDRIVER_MANAGER 3.5.2的问题。WebDRIVER_MANAGER的记录器有问题。详情请参考this issue和this pull request。

您可以根据拉取请求编辑WebDRIVER_MANAGER的源代码来修复该问题。您可以编辑webdriver_manager/microsoft.py文件,添加import logging并将log_level=None更改为log_level=logging.INFO。然后它就可以与Edge驱动程序很好地配合使用了。

好了关于正在使用Python初始化MSEdge浏览器,获取TypeError:Level不是整数或有效字符串:无的教程就到这里就结束了,希望趣模板源码网找到的这篇技术文章能帮助到大家,更多技术教程可以在站内搜索。