Selenium中WebDriverManager.chromedriver().setup()方法未定义问题求助
解决WebDriverManager中setup()方法未定义的问题
问题原因
这个报错是因为你使用的WebDriverManager 5.x及以上版本已经废弃了setup()方法。旧版本(4.x及以下)中WebDriverManager.chromedriver()返回的是支持setup()方法的实例,但新版本重构了API,移除了该方法,导致调用时提示方法未定义。
解决方案
你有两种处理方式:
方式1:适配WebDriverManager 5.x+版本(推荐)
直接移除setup()调用,使用新版本的API来获取驱动。新版本会自动完成驱动的下载、配置环境变量等操作,无需手动调用setup()。
修改后的代码:
package org.h2k.openmrs.tests; import org.openqa.selenium.WebDriver; import org.testng.annotations.BeforeClass; import io.github.bonigarcia.wdm.WebDriverManager; public class BaseClassExample { protected WebDriver driver; @BeforeClass public void instantiateDriver() { // 直接通过create()方法获取已配置好的ChromeDriver实例 driver = WebDriverManager.chromedriver().create(); driver.get("https://demo.openmrs.org/openmrs/login.htm"); String title = driver.getTitle(); System.out.println("Title of the page:::" + title); } }
也可以保留new ChromeDriver()的写法,新版本WebDriverManager会自动检测并配置驱动:
// 替代上面的driver初始化行 driver = new ChromeDriver();
对应的pom.xml依赖示例(使用最新5.x版本):
<dependency> <groupId>io.github.bonigarcia</groupId> <artifactId>webdrivermanager</artifactId> <version>5.6.3</version> <!-- 可替换为当前最新稳定版本 --> </dependency>
方式2:降级到WebDriverManager 4.x版本
如果你想继续使用setup()方法,可以将WebDriverManager版本降级到4.x(比如4.4.3),此时原代码可以正常运行。
修改pom.xml中的依赖:
<dependency> <groupId>io.github.bonigarcia</groupId> <artifactId>webdrivermanager</artifactId> <version>4.4.3</version> </dependency>
内容的提问来源于stack exchange,提问作者Shobha
相关产品推荐
相关产品推荐

