一、基础环境准备

1.安装jdk

2.安装maven 3.6+

3.安装IDE(IDEA或Eclipse)

二、UI自动化核心依赖配置(Maven方式)

4.创建Maven项目

        ①打开idea->new Project->选择Maven,勾选"Create from archetype"->选择“org.apache.maven.archetypes:maven-archetype-quickstart”

        ② 填写GroupId(如com.test)、ArtifactId(如java-test-demo)->Next

        ③ 确认Maven路径(自动识别)->Finish,等待项目初始化

5.配置pom.xml依赖

加入Selenium、TestNG、WebDriverManager依赖(经验证,以下版本完全适配JDK8)

        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-java</artifactId>
            <version>3.141.59</version>
        </dependency>
        <dependency>
            <groupId>org.testng</groupId>
            <artifactId>testng</artifactId>
            <version>6.14.3</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>io.github.bonigarcia</groupId>
            <artifactId>webdrivermanager</artifactId>
            <version>3.8.1</version>
        </dependency>
        <dependency>
            <groupId>org.testng</groupId>
            <artifactId>testng</artifactId>
            <version>6.14.3</version>
            <scope>compile</scope>
        </dependency>

三、浏览器驱动配置(WebDriverManager自动管理)

四、测试脚本编写与环境验证

在src/test/java下创建测试类,编写简单UI测试脚本

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;
import io.github.bonigarcia.wdm.WebDriverManager;

public class UIAutoTestDemo {
    private WebDriver driver;

    @BeforeTest
    public void setup() {
//        WebDriverManager.chromedriver().setup();
//        // 自动配置 Chrome 驱动
//        driver = new ChromeDriver();
//        driver.manage().window().maximize();
        
        // 手动指定 ChromeDriver 路径(双反斜杠或单斜杠)
        System.setProperty("webdriver.chrome.driver", "D:\\other\\chromedriver-win64\\chromedriver.exe");
        driver = new ChromeDriver();
        driver.manage().window().maximize();
    }

    @Test
    public void testOpenBaidu() {
        driver.get("https://www.baidu.com");
        assert driver.getTitle().contains("百度"); 
    }

    @AfterTest
    public void teardown() {
        if (driver != null) {
            driver.quit();
        }
    }
}

五、配置中常见的错误

1.JDK版本与Selenium版本不兼容

Error:(6, 27) java: 无法访问org.openqa.selenium.WebDriver
  错误的类文件: /D:/code/repository/org/seleniumhq/selenium/selenium-api/4.15.0/selenium-api-4.15.0.jar!/org/openqa/selenium/WebDriver.class
    类文件具有错误的版本 55.0, 应为 52.0
    请删除该文件或确保该文件位于正确的类路径子目录中。

Selenium 4.15.0编译时使用的是JDK11(class文件版本55.0),JDK8(仅支持class文件版本52.0)

方案一:升级到JDK11(后续实现)(优选)

方案二:降级Selenium到JDK8兼容版本

①修改Selenium依赖版本为3.141.59

②同步修改WebDriverManager版本为3.8.1

③调整测试脚本(适配Selenium 3.x)

2.JDK版本与TestNG版本不兼容

Error:(8, 30) java: 无法访问org.testng.annotations.AfterTest
  错误的类文件: /D:/code/repository/org/testng/testng/7.8.0/testng-7.8.0.jar!/org/testng/annotations/AfterTest.class
    类文件具有错误的版本 55.0, 应为 52.0
    请删除该文件或确保该文件位于正确的类路径子目录中。

①修改TestNG依赖版本为6.14.3

注:核心原则

JDK8 对应Selenium3.x + TestNG 6.x

JDK11 对应Selenium4.x + TestNG 7.x(优选)

3.ChromeDriver和Chrom浏览器版本不兼容

org.openqa.selenium.SessionNotCreatedException: session not created: This version of ChromeDriver only supports Chrome version 114
Current browser version is 125.0.6422.142 with binary path C:\Program Files\Google\Chrome\Application\chrome.exe
xxxxx.....
Driver info: driver.version: ChromeDriver

使用的ChromeDriver只支持Chrom 114,而浏览器是125版本。

解决方案1:自动管理驱动方式

解决方案2:手动下载匹配驱动

先打开Chrome,输入chrom://version,确认版本为125;

再访问Chrom for Testing下载列表,找到125版本对应的ChromeDriver,下载Windows系统对应的安装包;

解压后得到chromedriver.exe,可放在项目根目录,或配置到系统环境变量PATH中;

最后再代码中指定驱动路径

125版本ChromeDriver如下

{
  "version": "125.0.6422.14",
  "revision": "1287751",
  "downloads": {
    "chrome": [
      {
        "platform": "linux64",
        "url": "https://storage.googleapis.com/chrome-for-testing-public/125.0.6422.14/linux64/chrome-linux64.zip"
      },
      {
        "platform": "mac-arm64",
        "url": "https://storage.googleapis.com/chrome-for-testing-public/125.0.6422.14/mac-arm64/chrome-mac-arm64.zip"
      },
      {
        "platform": "mac-x64",
        "url": "https://storage.googleapis.com/chrome-for-testing-public/125.0.6422.14/mac-x64/chrome-mac-x64.zip"
      },
      {
        "platform": "win32",
        "url": "https://storage.googleapis.com/chrome-for-testing-public/125.0.6422.14/win32/chrome-win32.zip"
      },
      {
        "platform": "win64",
        "url": "https://storage.googleapis.com/chrome-for-testing-public/125.0.6422.14/win64/chrome-win64.zip"
      }
    ],
    "chromedriver": [
      {
        "platform": "linux64",
        "url": "https://storage.googleapis.com/chrome-for-testing-public/125.0.6422.14/linux64/chromedriver-linux64.zip"
      },
      {
        "platform": "mac-arm64",
        "url": "https://storage.googleapis.com/chrome-for-testing-public/125.0.6422.14/mac-arm64/chromedriver-mac-arm64.zip"
      },
      {
        "platform": "mac-x64",
        "url": "https://storage.googleapis.com/chrome-for-testing-public/125.0.6422.14/mac-x64/chromedriver-mac-x64.zip"
      },
      {
        "platform": "win32",
        "url": "https://storage.googleapis.com/chrome-for-testing-public/125.0.6422.14/win32/chromedriver-win32.zip"
      },
      {
        "platform": "win64",
        "url": "https://storage.googleapis.com/chrome-for-testing-public/125.0.6422.14/win64/chromedriver-win64.zip"
      }
    ],
    "chrome-headless-shell": [
      {
        "platform": "linux64",
        "url": "https://storage.googleapis.com/chrome-for-testing-public/125.0.6422.14/linux64/chrome-headless-shell-linux64.zip"
      },
      {
        "platform": "mac-arm64",
        "url": "https://storage.googleapis.com/chrome-for-testing-public/125.0.6422.14/mac-arm64/chrome-headless-shell-mac-arm64.zip"
      },
      {
        "platform": "mac-x64",
        "url": "https://storage.googleapis.com/chrome-for-testing-public/125.0.6422.14/mac-x64/chrome-headless-shell-mac-x64.zip"
      },
      {
        "platform": "win32",
        "url": "https://storage.googleapis.com/chrome-for-testing-public/125.0.6422.14/win32/chrome-headless-shell-win32.zip"
      },
      {
        "platform": "win64",
        "url": "https://storage.googleapis.com/chrome-for-testing-public/125.0.6422.14/win64/chrome-headless-shell-win64.zip"
      }
    ]
  }
}

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐