Geb を使用して、Grails Cucumber テストを行っています。
現在のページに定義されているリクエスト パラメータを取得するにはどうすればよいですか?
たとえば、現在のページの URL がwww.foo.com/list?sort=name&order=asc
sort
およびorder
paramsの値をテストするにはどうすればよいですか?
ブラウザーで現在の URL (パラメーターを含む) を取得するには:
使用する:
def url = browser.driver.currentUrl
または (Page オブジェクト パターンを使用している場合)
def url = page.driver.currentUrl
次に、URIBuilder を使用してクエリ パラメータを抽出できます。
依存関係セクションの下の BuildConfig.groovy に以下を追加して、HTTPBuilder モジュールをインポートします。
test 'org.codehaus.groovy.modules.http-builder:http-builder:0.5.2'
以下を使用して URL パラメータを抽出します。
def builder = new URIBuilder(url);
assert 'name' == builder.query.sort;
assert 'asc' == builder.query.order;
正しい方向に向けてくれた@erdiに感謝します。
//これをリストコントローラーに追加します
def beforeIntereseptor {
def myUrl = request.request.requestURL // to get all
//or
def myUrl = request.request.requestURL.getParameter("ref")
/* "request.request.requestURL" don't get the desired URL */
//do soemthing based on your url then
}