如何解决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
相关产品推荐
相关产品推荐

