如何从Excel读取浏览器名通过WebDriverManager启动WebDriver访问URL
可行性结论
完全可以实现该需求,不需要提前在application.properties中预配置浏览器相关参数,整套流程无硬编码依赖。
实现步骤
- 读取Excel配置
引入Apache POI、EasyExcel这类常用Excel解析依赖,编写简单的读取逻辑,直接提取表格中存储的浏览器名称字段即可。读取后记得对字符串做归一化处理:统一转小写、去除前后空格,避免因为单元格格式问题导致匹配失败。如果有需要,也可以把目标访问URL一并存在Excel中同步读取,进一步减少硬编码。 - 动态初始化WebDriver
WebDriverManager原生支持按浏览器类型自动拉取对应版本的驱动文件、完成环境配置,不需要提前写死驱动路径或浏览器类型。拿到Excel读取到的浏览器名称后,做分支匹配即可初始化对应浏览器的WebDriver实例。 - 启动访问
实例初始化完成后,直接调用页面跳转方法传入目标URL即可完成访问。
核心参考代码
import io.github.bonigarcia.wdm.WebDriverManager; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.edge.EdgeDriver; import org.openqa.selenium.firefox.FirefoxDriver; import java.io.File; import java.io.FileInputStream; public class DynamicBrowserTest { public static void main(String[] args) throws Exception { // 从Excel读取配置,示例为xlsx格式文件,浏览器名存在配置页第2行第1列 FileInputStream excelStream = new FileInputStream(new File("test-case-config.xlsx")); Workbook workbook = new XSSFWorkbook(excelStream); Sheet configSheet = workbook.getSheet("runtime-config"); String browserType = configSheet.getRow(1).getCell(0).getStringCellValue().trim().toLowerCase(); String targetUrl = configSheet.getRow(1).getCell(1).getStringCellValue().trim(); workbook.close(); excelStream.close(); // 根据读取到的浏览器类型动态初始化驱动 WebDriver driver; switch (browserType) { case "chrome": WebDriverManager.chromedriver().setup(); driver = new ChromeDriver(); break; case "firefox": WebDriverManager.firefoxdriver().setup(); driver = new FirefoxDriver(); break; case "edge": WebDriverManager.edgedriver().setup(); driver = new EdgeDriver(); break; default: throw new RuntimeException("Excel中配置的浏览器类型不支持:" + browserType); } // 访问目标地址 driver.get(targetUrl); // 后续测试逻辑自行补充 } }
注意事项
建议在读取到Excel中的浏览器参数后增加合法值校验,提前拦截拼写错误、空值这类异常,避免程序运行到驱动初始化阶段才报错。如果需要支持更多浏览器,只需要在分支判断中补充对应浏览器的WebDriverManager初始化逻辑即可,不需要修改配置文件。
内容的提问来源于stack exchange,提问作者Sureshsekar789
相关产品推荐
相关产品推荐

