编辑
2025-07-17
实用工具
00

目录

简介
安装
windows
macos
使用
groovy结合Selenium

简介

Groovy 是一种基于 JVM(Java 虚拟机) 的动态编程语言,设计目标是简化 Java 开发并提升开发效率。它结合了 Python、Ruby 和 Smalltalk 的语法特性,同时与 Java 无缝集成,既可以用作脚本语言,也可用于面向对象编程。以下是其核心特性和优势:

核心特性

  • 语法简洁灵活
    • 代码更少:相比 Java,Groovy 省略了分号、冗余的括号和显式类型声明。
    • 动态类型:变量类型在运行时确定(也可通过 @TypeChecked 或 @CompileStatic 启用静态类型检查)。
    • 闭包支持:提供类似函数式编程的闭包(Closure),简化集合操作和回调逻辑。 DSL(领域特定语言):允许开发者创建自定义语法,如 Gradle 构建脚本中的 build.gradle。
  • 与 Java 完美兼容
    • 无缝互操作:可直接调用 Java 类库,Java 代码也能调用 Groovy 代码。
    • 编译为 Java 字节码:Groovy 代码最终编译为 JVM 可识别的字节码,可在任何支持 Java 的环境中运行。
    • Java 语法扩展:保留 Java 的核心语法,同时添加了字符串插值、命令链(methodA().methodB() 简化为 methodA methodB)等特性。
  • 动态语言特性
    • - 运行时元编程:允许在运行时修改类或对象的行为(如动态添加方法)。

导航操作符(?.):简化空值检查,例如 object?.field 可避免空指针异常。 - GString:支持字符串内嵌表达式,如 "Hello, ${name}"。

  • 脚本化能力
    • 即写即运行:Groovy 脚本无需编译,直接通过 groovy script.groovy 执行。
    • 自动化任务:常用于构建工具(如 Gradle)、CI/CD 流水线(如 Jenkins)、数据处理脚本等。
  • 丰富的标准库
    • 提供对集合(List/Map)、正则表达式、XML/JSON 解析的简化操作。
    • 内置对数据库操作(Groovy SQL)、HTTP 请求(HttpClient)等的支持。

官网

w3c

https://groovy-lang.cn/install.html

安装

下载地址

windows

zip安装步骤

  1. apache-groovy-sdk-4.0.27.zip
  2. 解压文件
  3. 获取bin目录全路径
  4. 系统环境变量-path,添加变量D:\groovy-4.0.27\bin

macos

  1. brew install groovy
  2. vi ~/.bash_profile
  3. export GROOVY_HOME=/opt/homebrew/opt/groovy/libexec

检查安装是否成功 cmd输入

groovysh

提示

Groovy Shell (4.0.27, JVM: 1.8.0_201)

表示安装成功

使用

创建脚本文件hello.groovy

public class HelloWorld { public static void main(String []args) { System.out.println("Hello World"); } }

cmd运行脚本

groovy ./hello.groovy

groovy结合Selenium

java
//使用 Groovy 的 Grape 依赖管理 @Grapes([ // 导入 Selenium Java 库 @Grab(group='org.seleniumhq.selenium', module='selenium-java', version='3.141.59'), // 导入 ChromeDriver 支持 @Grab(group='org.seleniumhq.selenium', module='selenium-chrome-driver', version='3.141.59') ]) import org.openqa.selenium.* import org.openqa.selenium.chrome.ChromeDriver import org.openqa.selenium.chrome.ChromeOptions class test{ static void main(String[] args){ // 设置驱动路径 System.setProperty("file.encoding", "UTF-8"); System.setProperty("webdriver.chrome.driver", "C:\\Users\\lhw\\Downloads\\chromedriver-win64\\chromedriver-win64\\chromedriver.exe"); // 创建WebDriver实例 WebDriver driver = new ChromeDriver(); try { // 打开bing driver.get("https://cn.bing.com"); // 定位搜索框并输入文本 WebElement searchBox = driver.findElement(By.id("sb_form_q")); searchBox.sendKeys("天气"); // 定位搜索按钮并点击 WebElement searchBtn = driver.findElement(By.id("search_icon")); searchBtn.click(); // 等待结果加载(实际项目应使用显式等待) Thread.sleep(3000); StringBuilder strs=new StringBuilder(); WebElement addressElement=driver.findElement(By.className("w4g-l-text")); String address=addressElement.getText(); strs.append("地址:").append(address).append("\n"); WebElement currentTempE=driver.findElement(By.className("wzc-temp-v")); String currentTemp=currentTempE.getText(); strs.append("当前温度:").append(currentTemp).append("°C").append("\n"); List<WebElement> weatherEs=driver.findElements(By.className("wzc-temp-right")); strs.append("天气:").append(weatherEs.get(0).getText()).append("\n"); println(strs.toString()); } catch (InterruptedException e) { e.printStackTrace(); } finally { // 关闭浏览器 driver.quit(); } } }

本文作者:Weee

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!