0

こんにちは、geb.page のコンテンツにアクセスするために NavigationModule を実行しようとしましたが、このナビゲーション 'モジュール' からインスタンス化する場合、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.
    }
}

誰かが何が起こるか知っていますか?私はグーグルで検索するのに多くの時間を費やしましたが、何も見つかりません

前もって感謝します

4

1 に答える 1

1

Geb のドキュメント ( 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
    }
}
于 2014-12-10T21:38:52.947 に答える