Windows WSL环境中Selenium WebDriver启动崩溃问题求助
问题描述
我在Windows的WSL Linux环境下运行名为pythonas.py的Selenium程序,代码开头如下:
from selenium import webdriver from selenium.webdriver.firefox.service import Service from selenium.webdriver.firefox.options import Options firefox_binary_path = '/usr/bin/firefox' options = Options() options.binary_location = firefox_binary_path service = Service(executable_path='/usr/bin/geckodriver') driver = webdriver.Firefox(options=options, service=service)
执行到webdriver.Firefox()时程序崩溃,报错信息如下:
Traceback (most recent call last): File "pythonas.py", line 13, in <module> driver = webdriver.Firefox(options=options, service=service) File "/home/jk/.local/lib/python3.8/site-packages/selenium/webdriver/firefox/webdriver.py", line 68, in __init__ super().__init__(command_executor=executor, options=self.options) File "/home/jk/.local/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 206, in __init__ self.start_session(capabilities) File "/home/jk/.local/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 291, in start_session response = self.execute(Command.NEW_SESSION, caps)["value"] File "/home/jk/.local/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 346, in execute self.error_handler.check_response(response) File "/home/jk/.local/lib/python3.8/site-packages/selenium/webdriver/remote/errorhandler.py", line 245, in check_response raise exception_class(message, screen, stacktrace) selenium.common.exceptions.WebDriverException: Message: Process unexpectedly closed with status 1
环境信息:Windows WSL Linux、Selenium 4.10版本、geckodriver-v0.33.0-linux64、Firefox与geckodriver路径已确认正确。已尝试简化代码为driver = webdriver.Firefox(),报错情况未改变。
可能的原因及解决方向
- WSL缺少图形界面支持:Firefox需要图形环境才能启动,WSL默认没有配置X Server,导致进程启动后直接退出。解决步骤:
- 在Windows上安装X Server工具(如VcXsrv);
- 启动X Server并关闭“Native OpenGL”选项;
- 在WSL终端中执行
export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}'):0,再运行Python程序。
- Firefox与geckodriver版本不兼容:geckodriver 0.33.0要求Firefox版本为115及以上,若你的Firefox版本不匹配,会引发进程异常。运行
firefox --version查看版本,对应调整geckodriver或Firefox版本。 - Firefox系统依赖缺失:WSL环境下可能未预装Firefox所需的系统库,直接在WSL终端运行
firefox,若有依赖缺失提示,用包管理器(如apt install 缺失的库名)安装对应依赖。 - geckodriver权限不足:检查geckodriver是否有执行权限,若没有,执行
chmod +x /usr/bin/geckodriver赋予权限后重试。 - Selenium版本适配问题:Selenium 4.10在WSL环境下可能存在兼容性bug,尝试升级到4.15+或降级到4.8版本后测试。
内容的提问来源于stack exchange,提问作者John Kall
相关产品推荐
相关产品推荐

