You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ChromeDriver启动报错:参数无效、端口不可用问题求助

搞定ChromeDriver启动失败的那些坑(Port not available + CreatePlatformSocket错误)

嘿,看你的报错信息,核心问题就是ChromeDriver没法正常启动——一会儿说端口不可用,一会儿又蹦出CreatePlatformSocket()的参数错误,再加上你系统里有_JAVA_OPTIONS=-Djava.net.preferIPv4Stack=true的设置,这几个因素凑一块就出问题了。下面给你几个针对性的解决方案,一个个试过来应该能搞定:

1. 先解决端口占用的问题

ChromeDriver默认会随机挑端口,但有时候刚好被其他程序占了,咱可以手动指定一个没被用的端口:
修改你代码里启动ChromeDriver的部分,加上端口参数就行:

System.setProperty("webdriver.chrome.driver","F:\\Chromedriver\\chromedriver_win32\\chromedriver.exe");
// 新增ChromeOptions配置,指定端口
ChromeOptions options = new ChromeOptions();
options.addArguments("--remote-debugging-port=9515"); // 选个比如9515这种常用未占用端口
driver = new ChromeDriver(options);

另外,你也可以用命令行查一下占用报错里那个17873端口的进程:打开cmd,输入netstat -ano | findstr :17873,找到进程ID后,在任务管理器里结束它,再重新跑测试。

2. 修复_JAVA_OPTIONS的IPv4设置冲突

你系统里设置的-Djava.net.preferIPv4Stack=true可能和ChromeDriver的网络逻辑冲突了,先临时试试禁用这个环境变量:

  • 打开cmd,输入set _JAVA_OPTIONS=,清空这个变量;
  • 然后在同一个cmd窗口里运行你的Java测试程序,看看能不能正常启动ChromeDriver。
    如果管用,你可以永久修改环境变量,把-Djava.net.preferIPv4Stack=true删掉,或者直接在你的测试代码开头覆盖这个设置:
// 代码最开头加这句,取消强制IPv4
System.setProperty("java.net.preferIPv4Stack", "false");

3. 检查版本兼容性,别让版本不匹配拖后腿

你的Selenium版本是2.53.1,ChromeDriver是2.38,这俩版本其实兼容性不太好:

  • ChromeDriver 2.38对应的Chrome浏览器版本是65-67,先确认你的Chrome版本是不是在这个区间;
  • 建议要么把Selenium升级到3.x的稳定版(比如3.8.1及以上,和ChromeDriver2.38匹配),要么把ChromeDriver降级到和Selenium2.53.1适配的版本(比如ChromeDriver2.29,对应Chrome56-58)。

4. 确认ChromeDriver的路径和权限没问题

  • 先检查chromedriver.exe的路径是不是完全正确,别带空格或者特殊字符,有时候路径里有空格会导致识别失败;
  • 试试右键chromedriver.exe,选“以管理员身份运行”,或者给这个文件加读写执行的权限;
  • 也可以把chromedriver.exe放到系统PATH里的文件夹(比如C:\Windows),这样代码里不用写完整路径,直接System.setProperty("webdriver.chrome.driver","chromedriver.exe");就行。

给你整理好的修改后代码(直接用就行)

package automationFramework; 

import java.util.concurrent.TimeUnit; 
import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import appModules.SignIn_Action; 
import utility.Constant; 
import utility.ExcelUtils; 

public class Apache_POI_TC { 
    private static WebDriver driver=null; 
    public static void main(String[] args) throws Exception { 
        // 可选:覆盖IPv4强制设置
        System.setProperty("java.net.preferIPv4Stack", "false");
        
        ExcelUtils.setExcelFile(Constant.Path_TestData + Constant.File_TestData,"Sheet1"); 
        System.setProperty("webdriver.chrome.driver","F:\\Chromedriver\\chromedriver_win32\\chromedriver.exe"); 
        
        // 指定端口避免占用问题
        ChromeOptions options = new ChromeOptions();
        options.addArguments("--remote-debugging-port=9515");
        driver = new ChromeDriver(options); 
        
        driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); 
        driver.get(Constant.URL); 
        SignIn_Action.execute(driver); 
        System.out.println("Login Successfully, now it is the time to Log Off buddy."); 
        driver.quit(); 
        ExcelUtils.setCellData("Pass", 1, 3); 
    }
}

内容的提问来源于stack exchange,提问作者liki

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 06:45:51