4

私は Geb を使用して、いくつかのブラウザー自動化テストを作成しています。The Book of Gebで詳しく説明されているように、 を構成し、baseUrlこれに関連するブラウザー アクションを指定できます。これはサイト内のパスに対してうまく機能しますが、サブドメインを処理するための構文がわかりません。

baseUrl = http://myapp.com/Geb DSLを使用する簡単な方法はありhttp://sub.myapp.comますか、それともコードで baseUrl を定義するプロパティを取得し、それを使用してサブドメインを生成する必要がありますか?

4

3 に答える 3

1

erdi が述べたように、現在それを行う方法はないようです。最後に、オーバーライドされたバージョンの getPageUrl() を Page のサブクラスに追加しました。

String getPageUrl() {
    def subdomainPresent = this.class.declaredFields.find {
        it.name == 'subdomain' && isStatic(it.modifiers)
    }
    if( subdomainPresent ) {
        def baseURL = getBrowser().getConfig().getBaseUrl()
        def splicePoint = baseURL.indexOf('//') + 1

        pageUrl = baseURL[0..splicePoint] + this.class.subdomain + "." + baseURL[splicePoint+1..-1] + pageUrl
    }
    pageUrl
}

account.{baseUrl}/login にはこのように使用されます

class MyPage extends MyPageBase{
    static subdomain = "account"
    static url = "login"
}

プルリクエストとしてここに文書化されています https://github.com/geb/geb/pull/37/files

于 2013-06-13T15:17:35.733 に答える
0

私の知る限り、baseUrlテストの実行中に構成で直接設定する以外に変更する方法はありません。

browser.config.baseUrl = 'http://sub.myapp.com'
于 2013-02-13T20:10:01.253 に答える