Windows环境下Bash运行Selenium脚本报错:无法找到Chrome binary
解决Windows下Bash运行Selenium脚本找不到Chrome二进制文件的问题
问题根源
Bash环境(比如WSL)与Windows终端的环境变量不共享,Chrome安装在Windows系统中,Bash默认无法识别其路径,导致Selenium找不到Chrome二进制文件。
解决方法
1. 在Python代码中手动指定Chrome二进制路径
直接在Selenium的ChromeOptions里设置binary_location,指向Windows系统中Chrome的实际安装路径:
from selenium.webdriver.chrome.options import Options from selenium import webdriver from webdriver_manager.chrome import ChromeDriverManager def login(): chr_options = Options() chr_options.add_experimental_option("detach", True) # Windows原生路径格式 chr_options.binary_location = r"C:\Program Files\Google\Chrome\Application\chrome.exe" # 如果是WSL环境,也可以用WSL挂载路径(注意空格转义) # chr_options.binary_location = "/mnt/c/Program\ Files/Google/Chrome/Application/chrome.exe" driver = webdriver.Chrome(ChromeDriverManager().install(), options=chr_options) driver.get('https://github.com/new')
2. 在Bash脚本中添加Chrome路径到环境变量
修改你的Bash脚本,先将Chrome的Windows路径转换为WSL挂载路径并添加到PATH中,再执行Python脚本:
# 添加Chrome路径到环境变量(处理空格) export PATH="$PATH:/mnt/c/Program\ Files/Google/Chrome/Application" # 或者用引号包裹路径 # export PATH="$PATH:'/mnt/c/Program Files/Google/Chrome/Application'" python3 login.py
3. 验证Python环境一致性
确认Bash中使用的python3和Windows终端中运行的Python是同一个环境,避免因环境差异导致的依赖问题。可以分别在两个终端执行which python3(Bash)和where python(Windows终端)检查路径是否一致。
内容的提问来源于stack exchange,提问作者RUSHAAD
相关产品推荐
相关产品推荐

