Chrome WebDriver加载失败求助:DeprecationWarning及路径错误
ChromeDriver加载失败问题解决(Manjaro Linux + PyCharm环境)
问题描述
在Manjaro Linux系统中,通过PyCharm安装Python、python-pip及Selenium包实现自动化功能,但无法加载Chrome WebDriver并报错。已下载与当前Chrome浏览器版本匹配的chromedriver文件,并存放在项目文件夹及/usr/local/bin/chromedriver路径下,仍出现错误。
运行代码
from selenium import webdriver browser = webdriver.Chrome(executable_path='./chromedriver') browser.get('www.google.com')
错误信息
/home/abubakar/PycharmProjects/pythonProject_01/main.py:2: DeprecationWarning: executable_path has been deprecated, please pass in a Service object browser = webdriver.Chrome(executable_path='./chromedriver') Traceback (most recent call last): File "/home/abubakar/PycharmProjects/pythonProject_01/venv/lib/python3.10/site-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 969, in __init__ self._execute_child(args, executable, preexec_fn, close_fds, File "/usr/lib/python3.10/subprocess.py", line 1845, in _execute_child raise child_exception_type(errno_num, err_msg, err_filename) FileNotFoundError: [Errno 2] No such file or directory: './chromedriver' During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/home/abubakar/PycharmProjects/pythonProject_01/main.py", line 2, in <module> browser = webdriver.Chrome(executable_path='./chromedriver') File "/home/abubakar/PycharmProjects/pythonProject_01/venv/lib/python3.10/site-packages/selenium/webdriver/chrome/webdriver.py", line 69, in __init__ super().__init__(DesiredCapabilities.CHROME['browserName'], "goog", File "/home/abubakar/PycharmProjects/pythonProject_01/venv/lib/python3.10/site-packages/selenium/webdriver/chromium/webdriver.py", line 89, in __init__ self.service.start() File "/home/abubakar/PycharmProjects/pythonProject_01/venv/lib/python3.10/site-packages/selenium/webdriver/common/service.py", line 81, in start raise WebDriverException( selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be in PATH. Please see https://chromedriver.chromium.org/home
Process finished with exit code 1
解决步骤
1. 赋予chromedriver可执行权限
即使文件放置在正确路径,没有可执行权限系统也无法调用。打开终端执行:
sudo chmod +x /usr/local/bin/chromedriver
如果需要使用项目文件夹内的chromedriver,同样添加权限:
chmod +x /home/abubakar/PycharmProjects/pythonProject_01/chromedriver
2. 适配新版本Selenium的代码写法
错误提示明确executable_path参数已被弃用,需改用Service类。修改代码如下:
from selenium import webdriver from selenium.webdriver.chrome.service import Service # 方式一:调用/usr/local/bin路径下的chromedriver(该目录默认在系统PATH中,无需指定路径) service = Service() browser = webdriver.Chrome(service=service) # 方式二:指定项目文件夹内chromedriver的绝对路径 # service = Service('/home/abubakar/PycharmProjects/pythonProject_01/chromedriver') # browser = webdriver.Chrome(service=service) browser.get('https://www.google.com') # 注意添加http/https协议前缀
3. 验证系统PATH包含目标目录
如果方式一无效,检查系统PATH是否包含/usr/local/bin:
echo $PATH
若输出中无该目录,临时添加(重启终端后失效):
export PATH=$PATH:/usr/local/bin
或永久添加,编辑~/.bashrc或~/.zshrc文件(根据使用的Shell),在末尾添加:
export PATH=$PATH:/usr/local/bin
保存后执行source ~/.bashrc或source ~/.zshrc生效。
内容的提问来源于stack exchange,提问作者Abubakr Umar
相关产品推荐
相关产品推荐

