2013-09-05 1 views
1

У меня есть тест Grails Cucumber с использованием Geb.Geb - Как опросить параметры запроса страницы

Как получить параметры запроса, определенные для текущей страницы?

E.g. С учетом текущей страницы url is www.foo.com/list?sort=name&order=asc

Как проверить, какие значения для параметров sort и order есть?

+0

Вы хотите получить текущие параметры запроса браузера страницы? – erdi

+0

@erdi - Да, я пытаюсь проверить параметры запроса для текущей страницы. Я попытался использовать page.getDriver(). GetCurrentUrl(), но это не возвращало параметры. Однако я не уверен, правильно ли был изменен URL (я пытаюсь щелкнуть заголовок столбца для сортировки). – Tim

+1

это браузер.driver.currentUrl, а затем вам нужно будет самостоятельно извлекать параметры из url или использовать библиотеку – erdi

ответ

7

Чтобы разжиться текущего URL в браузере (включая параметры):

Использование:

def url = browser.driver.currentUrl 

Или (если вы используете шаблон объекта Page)

def url = page.driver.currentUrl 

Затем вы можете использовать URIBuilder для извлечения параметров запроса:

Импорт модуль HTTPBuilder, добавив следующее BuildConfig.groovy в разделе Зависимости:

test 'org.codehaus.groovy.modules.http-builder:http-builder:0.5.2' 

Извлечь URL-адрес paramters с помощью:

def builder = new URIBuilder(url); 
assert 'name' == builder.query.sort; 
assert 'asc' == builder.query.order; 

Благодаря @erdi указал мне в правильном направлении ,

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 

} 
+0

Есть ли способ сделать это, не затрагивая код приложения? Я бы предпочел не выставлять тестовые приспособления для приложения. – Tim

+0

где вы хотите, вы можете использовать свой браузер? – danielad

+0

Вы используете WebDriver.getCurrentUrl()? Если да, см. Мой комментарий выше ... – Tim

 Смежные вопросы

  • Нет связанных вопросов^_^