Groovy 是一种基于 JVM(Java 虚拟机) 的动态编程语言,设计目标是简化 Java 开发并提升开发效率。它结合了 Python、Ruby 和 Smalltalk 的语法特性,同时与 Java 无缝集成,既可以用作脚本语言,也可用于面向对象编程。以下是其核心特性和优势:
核心特性
- 运行时元编程:允许在运行时修改类或对象的行为(如动态添加方法)。
导航操作符(?.):简化空值检查,例如 object?.field 可避免空指针异常。 - GString:支持字符串内嵌表达式,如 "Hello, ${name}"。
https://groovy-lang.cn/install.html
zip安装步骤
检查安装是否成功 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
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 许可协议。转载请注明出处!