Loading...

为什么基于Selenium实现浏览器自动化操作时,建议搭配WebDriverManager使用以及什么是WebDriver?

阅读 ...

因为项目经历中写到基于 Selenium 和 WebDriverManager实现了自动化网页截图功能,出现了Selenium和WebDriver这两个东西,所以面试的时候,面试官让我解释一下这两个东西是干嘛用的。

本文就来理清一下。

什么是WebDriver?

Selenium是一套完整的Web自动化测试工具集,而 WebDriver 是其中最核心的组件。

简单说一下原理:

  1. 我们写的代码(比如 driver.getScreenshotAs(OutputType.FILE)),会被WebDriver转换成浏览器能识别的协议命令(比如W3C WebDriver协议)。
  2. 浏览器收到命令后执行操作(网页截图),再把结果通过WebDriver返回给我们的代码。

不同浏览器有专属的WebDriver:

  • Chrome → ChromeDriver
  • Firefox → GeckoDriver
  • Edge → EdgeDriver

这些驱动都是 Chrome、Firefox 等浏览器厂商官方维护发布的,而非 Selenium 官方提供,这也是浏览器版本更新后,对应驱动必须同步更新的原因。

为什么强烈建议搭配WebDriverManager?

WebDriverManager 是一个开源库,作用是自动管理浏览器驱动

比如你电脑上Chrome是123版本,它会自动找对应的ChromeDriver 123版本,不用你手动去官网找链接、下文件,也不用写 System.setProperty 那行配置环境的代码,它会帮你搞定。

此外,它还自带驱动本地缓存能力,一次下载后会重复复用,不会每次运行脚本都重新下载,不影响自动化截图的执行效率。

举个例子

  1. 先在Maven里加依赖:
1
2
3
4
5
<dependency>
    <groupId>io.github.bonigarcia</groupId>
    <artifactId>webdrivermanager</artifactId>
    <version>6.1.0</version>
</dependency>
  1. 然后代码里直接用:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
import io.github.bonigarcia.wdm.WebDriverManager;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;

public class MyAutomationTest {
    public static void main(String[] args) {
        // 这一行,自动搞定ChromeDriver的版本、下载、配置
        WebDriverManager.chromedriver().setup();
        
        WebDriver driver = new ChromeDriver();
        driver.get("https://xxx.com");
        // 接下来写你的自动化操作...
    }
}

小贴士

  • WebDriver:Selenium和浏览器之间的“桥梁”,负责把代码指令翻译成浏览器动作。
  • WebDriverManager:桥梁的“管理员”,自动搞定驱动版本、下载、配置,让你专注写业务逻辑。
本文由 iamxurulin 原创发布,转载请保留原文链接。
最后更新于 2026-08-23 17:21:42
关于作者与文章

本文为 iamxurulin 原创技术文章。如对内容有疑问或建议,欢迎在评论区交流讨论。

Coder_Studio - 记录后端开发、算法与 AI 的成长之路