geb.page内容模块无法解析

时间:2014-12-09 22:30:31

标签: groovy intellij-idea automation geb intellij-14

您好我尝试使用NavigationModule来访问我在geb.page中的内容,但是当我想通过此导航'模块' intellij无法解决

class NavigationModule extends Module{
    static content = {
        homeLink { $("a", title:"Home") }
        contactLink { $("a", title:"Contact Us") }
    }
}

class HomePage extends Page{

    static url = "http://www.websitetest.com"
    static at={
        assert $("h1").text() == "Test website speed and performance"
    }
    static content = {
        navBar {module NavigationModule}
        //loginLink { $("a", text: "login")[0]}
    }
}

我也无法从我的脚本

访问
void test() {

    Browser.drive() {
        to HomePage
        navBar.
    }
}
有人知道会发生什么吗?我花了很多时间在谷歌搜索,但我找不到任何东西

提前致谢

1 个答案:

答案 0 :(得分:1)

Geb doc(http://www.gebish.org/manual/current/ide-and-typing.html#strong_typing)建议您明确定义类型以获得更好的IDE支持。

使用此示例代码完成对我有用。

class HomePage extends Page {

    static url = "http://www.websitetest.com"
    static at={
        assert $("h1").text() == "Test website speed and performance"
    }

    static content = {
        navBar {module NavigationModule}
        //loginLink { $("a", text: "login")[0]}
    }

    // explicitly define getter to give IntelliJ more type information
    NavigationModule getNav() {
        navBar
    }
} 

测试脚本:

void test() {

    Browser.drive() {
        // assign to page in order to have code completion on page
        page = to HomePage
        // code completin for homeLink works
        navBar.homeLink
    }
}