You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Selenium Service时触发TypeError:期望路径对象而非方法

问题分析:Selenium启动Firefox时的TypeError错误

错误信息

Traceback (most recent call last):
File "/home/lucas/Desenvolvimento/Projetos/WebScraping/CAUC/CapturarCAUC_teste2.py", line 7, in
navegador = webdriver.Firefox(service=service)
File "/usr/local/lib/python3.10/dist-packages/selenium/webdriver/firefox/webdriver.py", line 172, in init
self.service.start()
File "/usr/local/lib/python3.10/dist-packages/selenium/webdriver/common/service.py", line 71, in start
self.process = subprocess.Popen(cmd, env=self.env,
File "/usr/lib/python3.10/subprocess.py", line 966, in init
self._execute_child(args, executable, preexec_fn, close_fds,
File "/usr/lib/python3.10/subprocess.py", line 1717, in _execute_child
and os.path.dirname(executable)
File "/usr/lib/python3.10/posixpath.py", line 152, in dirname
p = os.fspath(p)
TypeError: expected str, bytes or os.PathLike object, not method

对应Python脚本

from selenium import webdriver
from webdriver_manager.firefox import GeckoDriverManager
from selenium.webdriver.firefox.service import Service

service = Service(GeckoDriverManager().install) 

navegador = webdriver.Firefox(service=service)

问题原因及修复

问题出在Service(GeckoDriverManager().install)这一行:你传递给Service的是**install方法对象**,而不是方法执行后返回的geckodriver路径字符串。

GeckoDriverManager().install是方法的引用,需要加上括号()调用该方法,它才会自动下载、安装geckodriver,并返回驱动文件的绝对路径。

修正后的代码:

from selenium import webdriver
from webdriver_manager.firefox import GeckoDriverManager
from selenium.webdriver.firefox.service import Service

# 给install方法加括号,执行后返回驱动路径
service = Service(GeckoDriverManager().install()) 

navegador = webdriver.Firefox(service=service)

内容的提问来源于stack exchange,提问作者D-LA

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 14:18:25