在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
Geb 简易文档效果图依赖及安装
jdk1.7 安装(略)gradle 安装1 下载 2 解压 3 设置环境变量:添加 4 测试安装是否成功:打开命令行,输入 maven 安装(略)groovy 安装可以通过 compile "org.gebish:geb-core:0.12.2"compile "org.seleniumhq.selenium:selenium-firefox-driver:2.45.0"compile "org.seleniumhq.selenium:selenium-support:2.45.0" 运行测试安装完依赖后,下载本示例项目。 在项目根目录中打开命令行窗口,然后输入 使用配置
在配置文件中设置了 配置文件中设置如下 baseUrl = 'http://myapp.com/' 测试类 { go "abc"} 则网址为:
API 语法参考常用
// 等待页面标题等于某个值waitFor { title == "Page Title" }// 語法waitFor {} // 預設的等待時間waitFor(10) {} // 最長等待時間為 10 秒waitFor(10, 0.5) {} // 最長等待時間為 10 秒,每次判斷條件的間隔時間為 0.5 秒waitFor("quick") {} // 依照自定的等待時間 使用 Navigator API在编写浏览器自动化测试时,需要大量的
用法与 语法结构: $([css选择器], [index 或 range], [DOM 元素 attribute 或 text matchers]) 如: $("div p", 0)$("div p", title: "something")$(0)$(title: "something")$("p", 0..1)*.text()$("p", text: "p1").size()$("p", text: "p1", class: "a").size()// 正则表达式$("p", text: ~/p./)$("p", text: startsWith("p"))$("p", text: endsWith("2"))$("p", text: contains(~/\d/)).
// 这两个是一样的$("div").find(".b")$("div").$(".b")// 获取 class=b 的 div$("div").filter(".b")// 获取不包含 p 且 class=b 的 DOM$(".b").not("p")$("div").hasNot("p")$("div").hasNot("input", type: "text")// 获取包含 p 的 div$("div").has("p")$("div").has("input", type: "text")
$("p.d").previous()$("p.e").prevAll()$("p.d").next()$("p.c").nextAll()$("p.d").parent()$("p.c").siblings()$("div.a").children()
$("a.login").click()
$("div").height == 20$("div").width == 40$("div").x == 20$("div").y == 10
<p title="a" class="a para">a</p><p title="b" class="b para">b</p><p title="c" class="c para">c</p> assert $("p").text() == "a"assert $("p").tag() == "p"assert $("p").@title == "a"assert $("p").classes() == ["a", "para"]
assert $("div").css("float") == "left"
// 模拟输入 foo$("input") << "foo"assert $("input").value() == "foo"// 模拟输入 Ctrl+C$("input") << Keys.chord(Keys.CONTROL, "c")
1 直接使用 2 使用 def actions = new Actions(driver)WebElement someItem = $("li.clicky").firstElement()def shiftClick = actions.keyDown(Keys.SHIFT).click(someItem).keyUp(Keys.SHIFT).build()shiftClick.perform() 3 使用闭包 interact { keyDown Keys.SHIFT click $("li.clicky") keyUp Keys.SHIFT} 4 列子 拖放 interact { clickAndHold($('#draggable')) moveByOffset(150, 200) release()}// 或者interact { dragAndDropBy($("#draggable"), 150, 200)}// 或者interact { dragAndDrop($("#draggable"), $("#droppable"))} Ctrl+单击 import org.openqa.selenium.Keysinteract { keyDown(Keys.CONTROL) click($("ul.multiselect li", text: "Order 1")) click($("ul.multiselect li", text: "Order 2")) click($("ul.multiselect li", text: "Order 3")) keyUp(Keys.CONTROL)} 滚动条 Actions actions = new Actions(driver)actions.moveToElement(driver.findElement(By.id('tab'))).perform()// 或者interact { clickAndHold($('#tab')) release()}// 或者interact { click(theUI)}// 或者interact { moveToElement(theUI)}// 或者使用 js (略) 操作 Frame(略) 操作 javascript, AJAX 和 动态页面(略) 处理下载(略) Scripts and binding(略) 测试报告(略) 测试框架集成(略) 其他
通过继承 模拟点击 driver.switchTo().alert().accept(); 更多内容请参考官方文档 参考 |
请发表评论