2

我有一个 Grails Cucumber 测试,使用 Geb。

如何获取为当前页面定义的请求参数?

例如,鉴于当前页面 url 是www.foo.com/list?sort=name&order=asc

如何测试sortorderparams 的值是什么?

4

2 回答 2

7

要在浏览器中获取当前 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 为我指明了正确的方向。

于 2013-09-07T13:17:34.540 回答
0

//在列表控制器上添加这个

这将在加载任何控制器操作之前立即执行。

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

}
于 2013-09-05T13:24:38.417 回答