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

如何解决Selenium+TestNG中WebDriver空指针NullPointerException?

解决WebDriver空指针异常的方案

1. 修正TestNG注解

你当前使用的@Before是TestNG的旧版注解,部分新版本TestNG可能无法正确触发该方法执行,导致driver未初始化。直接替换为@BeforeMethod注解,确保每个测试方法执行前都会运行初始化逻辑:

import org.testng.annotations.BeforeMethod; // 务必导入正确的TestNG包

@BeforeMethod
public void setUp() {
    // 保留原初始化代码,后续再优化
}

2. 补全ChromeDriver必要配置

新版本ChromeDriver要求必须添加--remote-allow-origins=*参数,否则会初始化失败,导致driver为null。取消注释并完善配置:

@BeforeMethod
public void setUp() {
    System.setProperty("webdriver.chrome.driver", "C:\\Program Files (x86)\\WebDriver\\chromedriver.exe");
    ChromeOptions options = new ChromeOptions();
    options.addArguments("--remote-allow-origins=*");
    driver = new ChromeDriver(options); // 将配置传入ChromeDriver实例
}

3. 验证ChromeDriver路径

检查chromedriver.exe的实际路径是否与代码中一致,注意路径分隔符用双反斜杠\\或正斜杠/。路径错误会直接导致ChromeDriver初始化失败,driver无法赋值。

4. 确保依赖版本兼容

确认项目中TestNG与Selenium版本匹配,过时的TestNG版本可能无法识别注解,导致setUp方法不执行。建议使用TestNG 7.7以上的稳定版本。

5. 检查测试执行方式

在IDE中运行测试时,必须选择TestNG运行配置,而非普通Java类运行。普通运行不会触发TestNG的注解生命周期方法,自然不会初始化driver。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 13:05:31