我有一个 Grails Cucumber 测试,使用 Geb。
如何获取为当前页面定义的请求参数?
例如,鉴于当前页面 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
}