Geb 开源项目指南

Geb 开源项目指南

gebVery Groovy Browser Automation项目地址:https://gitcode.com/gh_mirrors/ge/geb

项目介绍

Geb 是一个基于 Groovy 的现代化自动化浏览器交互库,它结合了页面对象模式的力量和 WebDriver 的灵活性,提供了一种优雅且可读性高的方式来编写浏览器自动化脚本。Geb 提供了一个高层次的API,使得测试浏览器交互、原型设计和爬虫编写变得简单而直观。它鼓励一种结构化的方法来组织测试,促进了代码的重用和维护。

项目快速启动

安装前提

确保已安装 Java Development Kit (JDK) 和最新版本的 Selenium WebDriver

添加依赖

如果你是 Gradle 用户,在你的 build.gradle 文件中添加以下依赖:

dependencies {
    testImplementation 'org.geb:geb-core:latest.version'
    testImplementation 'org.seleniumhq.selenium:selenium-chrome-driver:latest.version' // 或者其他需要的浏览器驱动
}

替换 latest.version 为实际发布的最新版本号。

编写第一个 Geb 测试

创建一个名为 ExampleSpec.groovy 的文件,并编写以下示例代码:

import geb.spider.Spider
import geb.waiting.WaitingDriverFactory
import org.openqa.selenium.chrome.ChromeDriverService

ChromeDriverService.create("path/to/chromedriver", logFile: "/dev/null").start()
driverFactory = new WaitingDriverFactory()

class ExampleSpider extends Spider {
    static content = {
        welcomeText { $('h1').text() }
    }

    void visit(String url) {
        go url
        assert welcomeText == "欢迎来到Geb的世界!"
    }
}

new ExampleSpider().run("http://example.geb.info/")

这段代码定义了一个简单的蜘蛛,访问给定 URL 并验证页面上的欢迎文本。

运行测试

在命令行中,导航到项目根目录并运行你的 Gradle 任务:

./gradlew test

或者如果是 Windows 系统:

gradlew.bat test

应用案例和最佳实践

在 Geb 中,利用页面对象模型(Page Object Model)是最佳实践之一。这允许你将页面逻辑与测试逻辑分离,增加代码的可读性和可维护性。例如,为网站主页创建一个页面类,然后在测试中使用该类方法来交互。

class HomePage {
    static at = { title == '主页标题' }
    static content = {
        loginButton(to: LoginPage) { $('#login') }
    }
}

class LoginPage {
    static at = { title == '登录页标题' }
    static content = {
        usernameInput { $('input[name="username"]') }
        passwordInput { $('input[name="password"]') }
        submitButton { $('button[type="submit"]') }
    }
    
    void loginAs(String username, String password) {
        usernameInput.value(username)
        passwordInput.value(password)
        submitButton.click()
    }
}

测试时,你可以这样使用这些页面对象:

def homePage = to HomePage
homePage.loginButton.click()
def loginPage = to LoginPage
loginPage.loginAs('user', 'pass')

典型生态项目

Geb不仅适用于标准的Web自动化测试,也广泛应用于集成测试、Web应用原型开发以及数据抓取场景。与Grails框架的紧密结合让它成为构建Groovy Web应用测试套件的理想选择。此外,Geb也常被用于配合Spring Boot应用程序进行端到端测试,通过组合Spring的测试支持和Geb的强大功能,以实现高度自动化的测试流程。

请注意,上述依赖和代码示例中的 latest.version 需要替换成实际的版本号,具体版本可以在Geb的GitHub发布页面或Maven仓库中找到。

gebVery Groovy Browser Automation项目地址:https://gitcode.com/gh_mirrors/ge/geb

  • 25
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

伍希望

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值