我正在 Geb (WebDriver) 中构建一个测试,需要提交一个将创建一个文件作为响应的表单。
我可以下载文件(浏览器会自动将其保存到磁盘),但我想在 GEB 中检查它。
- 我试过 withNewWindow(),但它只对 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())
}
}
最佳答案
不幸的是,在单击以任何方式发布的按钮后,您将无法拦截浏览器下载的文件。
您必须使用表单发送的正确内容合成一个发布请求。虽然可以使用 Geb 的 DownloadSupport
来做到这一点class 它将变得复杂而笨重。您最好使用执行此类请求是主要功能的库,例如 REST-Assured .
关于groovy - 如何使用 GEB 提交表单下载文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25886901/