Manjaro系统下Laravel Dusk连接localhost 9515端口失败求助
Laravel Dusk连接ChromeDriver端口9515被拒绝的排查方案
针对你在Manjaro系统下用Sail安装Laravel Dusk后遇到的Failed to connect to localhost port 9515 after 0 ms: Connection refused错误,按以下步骤排查:
检查ChromeDriver与浏览器版本兼容性
版本不匹配是最常见的原因,执行sail dusk:chrome-driver --detect让Dusk自动安装与容器内浏览器匹配的ChromeDriver版本。也可以手动核对:打开本地Chrome/Chromium查看chrome://version的版本号,确保容器内ChromeDriver的主版本号完全一致。确认容器内的ChromeDriver和浏览器环境
因为Sail基于Docker容器运行,本地安装的Chrome/Chromium容器无法直接访问,必须确保容器内有完整的浏览器环境:- 进入Sail容器:
sail shell - 运行
chromedriver --version验证ChromeDriver是否正常,再执行chromedriver尝试启动,查看是否能在9515端口监听 - 如果容器内没有浏览器,需安装对应版本:Debian/Ubuntu基镜像可执行
apt-get install -y chromium-browser或google-chrome-stable
- 进入Sail容器:
修正Dusk测试配置
打开tests/DuskTestCase.php,检查driver()方法的ChromeOptions配置,确保添加容器运行必需的参数:protected function driver() { $options = (new ChromeOptions)->addArguments([ '--disable-gpu', '--headless=new', '--window-size=1920,1080', '--no-sandbox', // 容器内运行必须添加,避免权限拦截 '--binary=/usr/bin/chromium', // 若容器内用Chromium,指定其路径 ]); return RemoteWebDriver::create( 'http://localhost:9515', DesiredCapabilities::chrome()->setCapability( ChromeOptions::CAPABILITY, $options ) ); }检查容器内端口依赖与权限
- 在容器内执行
netstat -tulpn | grep 9515,确认是否有进程监听9515端口 - 如果ChromeDriver启动失败,可能是缺少系统依赖,执行
apt-get install -y libnss3 libxss1 libasound2 libgbm1补充必要库
- 在容器内执行
重启Sail容器
执行sail down && sail up -d重启容器,确保所有服务重新加载后再运行测试:sail artisan dusk
内容的提问来源于stack exchange,提问作者wtsuport
相关产品推荐
相关产品推荐

