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

Spock 测试:

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()
    }
}

GooglePage:
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。
谢谢你!

最佳答案

您可以在 WebDriver 类上使用 current url getter。 WebDriver 实例存储为 driver property on Browser 。因此,在 Geb Spock 测试中,这很简单:

driver.currentUrl

编辑

从 Geb 0.9.3 开始,还有一个 current url getter available on Browser

关于groovy - 使用geb保存当前网址,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16240603/

10-11 07:11