Selenium启动ChromeDriver报Invalid port及会话创建异常
问题背景
Java开发新手使用Selenium编写首个自动化测试用例时遇到启动异常,相关截图、代码、报错日志如下(SLF4J日志类报错可自行处理,以下仅针对核心启动失败问题给出解决方案):

测试代码
package automationFramework; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; public class FirstTestCase { public static void main(String[] args) { System.setProperty("webdriver.chrome.driver","chromedriver_win3222\\chromedriver.exe"); WebDriver wd =new ChromeDriver(); String baseUrl = "https://www.google.com"; wd.get(baseUrl); } }
核心报错日志
Invalid port. Exiting... Exception in thread "main" org.openqa.selenium.SessionNotCreatedException: Could not start a new session. Possible causes are invalid address of the remote server or browser start-up failure. at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:587) at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:264) at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:179) at org.openqa.selenium.chromium.ChromiumDriver.<init>(ChromiumDriver.java:101) at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:81) at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:49) at automationFramework.FirstTestCase.main(FirstTestCase.java:13) Caused by: org.openqa.selenium.WebDriverException: Driver server process died prematurely. Build info: version: '4.3.0', revision: 'a4995e2c09*' System info: host: 'DESKTOP-G3NE69C', ip: '192.168.56.1', os.name: 'Windows 11', os.arch: 'amd64', os.version: '10.0', java.version: '17.0.2' Driver info: driver.version: ChromeDriver at org.openqa.selenium.remote.service.DriverService.start(DriverService.java:226) at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:98) at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:569)
解决方案
按优先级依次排查以下问题即可解决:
- 核对ChromeDriver与本地Chrome浏览器版本匹配度
你当前使用的Selenium版本为4.3.0,需要手动下载和本机安装的Chrome浏览器大版本完全一致的ChromeDriver:比如本地Chrome为116版本,就必须使用116大版本对应的ChromeDriver,版本不匹配是该类启动错误的最高发原因。 - 检查ChromeDriver路径与文件有效性
你代码中配置的驱动路径为chromedriver_win3222\\chromedriver.exe,逐一确认:- 项目对应路径下确实存在该exe文件,文件夹、文件名无拼写错误
- ChromeDriver压缩包已完整解压,不是直接在压缩包内读取文件
- 右键点击chromedriver.exe打开「属性」面板,如果底部有安全锁定提示,勾选「解除锁定」后点击确定应用,Windows默认会拦截网络下载的可执行文件导致启动失败。
- 排查端口占用与拦截问题
日志明确提示Invalid port,说明ChromeDriver启动时需要绑定的本地端口被占用或拦截:- 临时关闭本机安全防护类软件、系统防火墙后重试,这类软件经常会拦截未知程序的端口绑定操作
- 打开命令提示符执行
netstat -ano | findstr "9515",如果返回占用记录,找到对应PID的进程结束后再重试,9515是ChromeDriver默认使用的启动端口。
- 低版本Selenium升级简化配置
Selenium 4.6及以上稳定版本内置了自动驱动管理工具,不需要手动下载ChromeDriver、也不需要写System.setProperty配置驱动路径,框架会自动匹配对应版本的驱动启动浏览器,你可以直接把Selenium依赖升级到4.6以上版本,删掉手动配置驱动路径的代码即可规避绝大多数驱动启动类问题。
内容的提问来源于stack exchange,提问作者user3671371
相关产品推荐
相关产品推荐

