Selenium调用IE浏览器时service参数传入报错的原因及解决方法
问题:Selenium启动IE浏览器报错TypeError: init() got an unexpected keyword argument 'service'
测试代码
# Internet Explorer Browser version from selenium import webdriver from selenium.webdriver.ie.service import Service from webdriver_manager.microsoft import IEDriverManager driver = webdriver.Ie(service=Service(executable_path=IEDriverManager().install())) driver.get('https://www.google.com')
报错信息
[WDM] - Downloading: 100%|█| 1.03M/1.03M [00:00<00:00, 19. Traceback (most recent call last): File "main.py", line 5, in <module> driver = webdriver.Ie(service=Service(executable_path=IEDriverManager().install())) TypeError: __init__() got an unexpected keyword argument 'service'
报错原因
你使用的Selenium版本低于4.x,webdriver.Ie()的构造函数在旧版本中没有service参数,该参数是Selenium 4.x才新增的驱动初始化方式,传入未被支持的参数会触发类型错误。
解决方法
方案1:升级Selenium到4.x及以上版本
执行以下命令完成升级:
pip install --upgrade selenium
升级后原有代码可正常运行,因为Selenium 4.x已支持通过Service对象管理驱动服务。
方案2:不升级Selenium,修改代码适配旧版本
删除Service相关的导入和使用逻辑,直接将驱动路径传给executable_path参数,修改后的代码如下:
# Internet Explorer Browser version from selenium import webdriver from webdriver_manager.microsoft import IEDriverManager driver = webdriver.Ie(executable_path=IEDriverManager().install()) driver.get('https://www.google.com')
内容的提问来源于stack exchange,提问作者person
相关产品推荐
相关产品推荐

