Python Webdrivermanager自定义路径下Edge驱动install()报错问询
问题排查与修复方案
核心错误原因
报错TypeError: Level not an integer or a valid string: None的直接原因是你修改的EdgeChromiumDriverManager类初始化参数中,log_level和print_first_line的默认值设为了None,而Python日志模块不接受None作为合法的日志等级输入。
对比可正常运行的Chrome配置可以看到,Chrome驱动管理器的log_level默认值为logging.INFO,print_first_line默认值为True,不存在空值问题。
额外隐藏问题
你修改的microsoft.py中,Edge最新版本查询地址latest_release_url里存在多余空格:https://msedgedriver.azureedge.net/ LATEST_RELEASE,斜杠和LATEST_RELEASE之间的空格会导致后续版本查询请求失败,需要一并修正。
修复步骤
- 修正
microsoft.py中EdgeChromiumDriverManager类的初始化参数,修改后的代码如下:
# 若文件头部未导入logging模块,请先添加导入语句: # import logging class EdgeChromiumDriverManager(DriverManager): def __init__( self, version="latest", os_type=utils.os_type(), path=r".\\Drivers", name="edgedriver", url="https://msedgedriver.azureedge.net", # 去掉URL中的多余空格 latest_release_url="https://msedgedriver.azureedge.net/LATEST_RELEASE", # 修改默认值和Chrome配置对齐 log_level=logging.INFO, print_first_line=True, cache_valid_range=1, ): super().__init__(path, log_level=log_level, print_first_line=print_first_line, cache_valid_range=cache_valid_range) self.driver = EdgeChromiumDriver( version=version, os_type=os_type, name=name, url=url, latest_release_url=latest_release_url, )
- 无需修改原有业务代码,重启程序即可正常运行。
内容的提问来源于stack exchange,提问作者Muddyblack k
相关产品推荐
相关产品推荐

