Python脚本中Selenium初始化ChromeDriver遇TypeError: WebDriver.__init__() got an unexpected keyword argument 'service'问题求助
Python脚本中Selenium初始化ChromeDriver遇TypeError: WebDriver.init() got an unexpected keyword argument 'service'问题求助
嗨,我来帮你排查这个问题!你遇到的错误其实是Selenium版本不兼容导致的——你现在用的是Selenium 3.141.0,但service这个参数是Selenium 4.x版本才新增的初始化方式,3.x版本的webdriver.Chrome()根本不认识这个参数,所以才会抛出这个TypeError。
下面给你两种可行的解决办法,你可以根据自己的需求选择:
方案一:升级Selenium到4.x版本(推荐)
如果你想保留现在的代码写法,只需要把Selenium升级到4.x即可,这样service参数就能正常使用了。执行下面的命令完成升级:
pip install --upgrade selenium
升级完成后,你当前的初始化代码driver = webdriver.Chrome(service=Service(driver_path), options=chrome_options)就可以正常运行,不需要修改其他内容。
方案二:不升级Selenium,修改初始化代码适配3.x版本
如果你不想升级Selenium,那就要改成3.x版本的传统初始化写法——用executable_path参数指定ChromeDriver的路径,而非service。
把你代码里的这一行:
driver = webdriver.Chrome(service=Service(driver_path), options=chrome_options)
替换成:
driver = webdriver.Chrome(executable_path=driver_path, options=chrome_options)
这样就能适配Selenium 3.141.0的API了,其他代码不需要改动。
另外补充一下:你的Chrome和ChromeDriver版本(115.x)是匹配的,这部分没问题,不用更换版本,只要解决初始化写法的问题就行~
备注:内容来源于stack exchange,提问作者Luis
相关产品推荐
相关产品推荐

