3

我在进行测试geb,但我遇到了问题。我需要保存/打印当前页面的地址(函数SaveUrl())。

斯波克测试:

class TestSpec extends GebReportingSpec {
def "Google"() {
    given: "go to google.com"
    to GooglePage

    when: "we at Google home page"
    at GooglePage

    then: "Search Yahoo"
    Search("Yahoo")
    SaveUrl()
    }
}

谷歌页面:

class GooglePage extends Page {
    static url = "http://www.google.by"
    static at = { $("title").text() == "Google"}
    static content = {
        theModule { module SearchModule }
    }

def Search(String arg0) {
    theModule.field.value(arg0)
    theModule.search.click()
    }

def SaveUrl() {
    // need implement
    }
}

模块:

class SearchModule extends Module {
static content = {
    field { $("input", name: "q") }
    search { $("input", name: "btnK") }
    }
}

请帮助保存/打印当前 URL。
谢谢你!

4

1 回答 1

11

您可以在 WebDriver 类上使用当前的 url getter 。WebDriver 实例作为driver属性存储在 Browser 上。因此,在 Geb Spock 测试中,就像这样简单地说:

driver.currentUrl

编辑

从 Geb 0.9.3 开始,还有一个当前的 url getter 可用Browser

于 2013-04-27T10:40:03.893 回答