我刚开始使用 geb 而且我非常喜欢它! 我的任务是为网站编写测试。
我的问题是 - 我可以使用 gradle 启动 groovy shell (而不是控制台)来试验我的脚本吗?
为什么我要这样做? 目前我使用groovy控制台编写我的脚本。 我的 gradle.build
中有以下几行task(console, dependsOn: 'classes', type: JavaExec) {
main = 'groovy.ui.Console'
classpath = sourceSets.main.runtimeClasspath
}
gradle console 启动我的控制台,然后输入类似的内容。
import geb.Browser
import org.openqa.selenium.firefox.FirefoxDriver
def browser = new Browser(driver: new FirefoxDriver())
Browser.drive {
go "http://mypage.com/"
//do some stuff to login
//do some stuff to reach specific page
//do some stuff to reach the state I want
doAssertion
}
然后我看到我在 doAssertion 函数中犯了一个错误,所以我纠正它并重新启动我的脚本,但是我必须等待浏览器来,等待记录发生并且等待其余的点击,看看我的脚本中还有一个拼写错误。
我想知道是否有一种方法可以连接到它在异常之前结束的浏览器并继续从那里修改我的脚本?
我试图找到解决这个问题的方法,但没有运气。
[编辑]: 在与朋友交谈后,我们找到了解决方案。
geb 创建 webDriver 的一个实例,并在我们创建新实例之前使用它。这意味着,如果删除行, Browser.drive 将从同一点继续:
new Browser(driver: new FirefoxDriver())