Java通过 Selenium/chrome driver控制chrome

ChromeDriver 是一个独立的服务器,作为 Selenium WebDriver 与 Google Chrome 浏览器之间的桥梁。

ChromeDriver 允许开发者通过编程方式控制 Chrome 浏览器,实现自动化测试和网页抓取等操作。

ChromeDriver 的工作原理
ChromeDriver 充当了 Selenium WebDriver 和 Chrome 浏览器之间的中介。当您通过 Selenium 发送命令时,ChromeDriver 会将这些命令转换为 Chrome 能够理解的协议,并将浏览器的响应返回给 Selenium。这种机制使得您可以通过代码模拟用户在浏览器中的操作。

安装 ChromeDriver 
具体下载地址:https://googlechromelabs.github.io/chrome-for-testing/
这个的址提供了chrome和chrome driver的下载,为了保持版本一致,这里一块下载chrome 就不需要本机原来安装的版本了(调用时指定chrome的path)
注意JDK版本 新的selenium-java可能不支持JDK8 根据日志提示切换JDK版本


        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-java</artifactId>
            <version>4.41.0</version> <!-- 请根据实际情况选择版本 -->
        </dependency>
WebDriver driver = null;
// 创建ChromeOptions配置对象
ChromeOptions options = new ChromeOptions();
// 设置ChromeDriver路径
String driverPath = "D:\\chrome\\chrome137\\chromedriver-win64\\chromedriver.exe";

// 设置离线Chrome浏览器路径
//String chromeBinaryPath = "D:\\chrome\\chrome-win64\\chrome.exe";
// 指定离线Chrome浏览器的可执行文件路径
//options.setBinary(chromeBinaryPath);

// 配置ChromeDriver系统属性
System.setProperty("webdriver.chrome.driver", driverPath);

//后台启动模式
//options.addArguments("--headless");

// 添加启动参数以适应离线环境
options.addArguments("--no-first-run");
options.addArguments("--disable-default-apps");
options.addArguments("--disable-extensions");
options.addArguments("--disable-plugins");
options.addArguments("--disable-web-security");
// 初始化WebDriver实例
driver = new ChromeDriver(options);
driver.get("https://chat.baidu.com/");
driver.manage().window().setSize(new Dimension(800, 600));
具体语法参考 https://www.selenium.dev/