2014-09-17 3 views
3

Я собираю тест в Geb (WebDriver) и должен отправить форму, которая создаст файл в ответ.Как загрузить файл с помощью формы с помощью GEB

Я могу загрузить файл (Браузер автоматически сохранит его на диск), но я сделал палочку, чтобы проверить его на GEB.

  • Я пробовал сNewWindow(), но он работает только на URI?
  • Я попытался downloadXXX(), но не повезло либо ...

Как я могу загрузить файл в переменную?

class CSVTest extends GebReportingTest 
    @Test 
    void csvCreation() { 
     to CSVExport 

     // select entries/fill values 
     selectAllEntries.value(true) 

     //// this will do a post 
     //// the server will render a file and deliver it back as a result of the submit 
     // CORRECTLY downloads the file 
     submitButton.click() 

     // NOT WORKING 
     withNewWindow (submitButton.click()) { 
      ... 
     } 

     // NOT WORKING 
     def csv = download(submitButton.click()) 
    } 
} 
+0

Благодарим за вопрос. Посмотрим, придет ли кто-нибудь, кто нас спасет! –

ответ

0

Вы не сможете перехватить файл, загруженный в браузере после нажатия кнопки, что делает пост в любом случае, к сожалению.

Вам нужно будет синтезировать почтовый запрос с нужным контентом, который отправляется при использовании формы. Хотя это можно сделать, используя класс Geb's DownloadSupport, он будет сложным и неуклюжим. Вам лучше использовать библиотеку, для которой выполнение таких запросов является основной функциональностью, например, REST-Assured.

+0

спасибо за подсказку! – fmi

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