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

如何通过Java代码打印运行中的Selenium版本?遇编译报错求解决

解决Selenium版本获取的编译错误及实现方案

错误原因分析

你遇到的The method getVersion() is undefined for the type Capabilities编译错误,是因为Selenium 4.x版本开始,org.openqa.selenium.Capabilities接口已移除了getVersion()方法,旧版API被废弃。另外需要明确:你当前的代码逻辑是获取Chrome浏览器/驱动的版本,而非Selenium框架本身的版本,这是两个完全不同的概念。


场景1:修正原代码,获取Chrome浏览器/驱动版本

如果你的需求是获取Chrome浏览器或ChromeDriver的版本,在Selenium 4+中可以通过以下方式实现:

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.annotations.Test;

public class Versionex {

    @Test
    public void findBrowserAndDriverVersion() {
        WebDriver driver = new ChromeDriver();
        
        // 获取Chrome浏览器版本
        String browserVersion = ((ChromeDriver) driver).getCapabilities().getBrowserVersion();
        // 获取ChromeDriver驱动版本
        String driverVersion = ((ChromeDriver) driver).getCapabilities().getCapability("chrome.driver.version").toString();
        
        System.out.println("Chrome浏览器版本: " + browserVersion);
        System.out.println("ChromeDriver驱动版本: " + driverVersion);
        
        driver.quit();
    }
}

场景2:获取Selenium框架本身的版本(满足你的核心需求)

如果要获取当前运行的Selenium核心库版本,有两种可靠实现方式:

方法1:使用Selenium 4+内置的Version类(推荐)

Selenium 4.x提供了专门的Version类来获取框架版本,代码简洁直接:

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.version.Version;
import org.testng.annotations.Test;

public class Versionex {

    @Test
    public void findSeleniumVersion() {
        // 直接获取Selenium核心版本
        String seleniumVersion = Version.getVersion();
        System.out.println("运行中的Selenium版本: " + seleniumVersion);
        
        // 可选:验证当前Selenium支持的Chrome最低兼容版本
        System.out.println("Selenium支持的Chrome最低版本: " + org.openqa.selenium.remote.Browser.CHROME.minimumSupportedVersion());
        
        WebDriver driver = new ChromeDriver();
        driver.quit();
    }
}

方法2:通过类包信息获取(兼容Selenium 3.x)

如果你仍在使用Selenium 3.x版本(无Version类),可以通过反射读取类的包实现版本:

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.annotations.Test;

public class Versionex {

    @Test
    public void findSeleniumVersion() {
        // 通过WebDriver类的包信息获取Selenium版本
        String seleniumVersion = WebDriver.class.getPackage().getImplementationVersion();
        System.out.println("运行中的Selenium版本: " + seleniumVersion);
        
        WebDriver driver = new ChromeDriver();
        driver.quit();
    }
}

注意事项

  • 确保你的项目依赖的Selenium版本与代码兼容:如果使用Selenium 4.x,建议引入最新稳定版;如果是3.x,注意不要使用4.x的API。
  • 若使用Maven/Gradle管理依赖,检查pom.xml/build.gradle中的Selenium依赖配置,避免版本冲突。

内容的提问来源于stack exchange,提问作者Aravinth Prasath E

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 15:37:59