groovy - 如何使用 GEB 提交表单下载文件

标签 groovy submit geb

我正在 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/

相关文章:

java - 动态语言中的 “dynamic” 会不会太多?

表单提交上的 Javascript 新按钮

testing - Grails 功能测试 - 数据库设置/拆卸,在 Eclipse 中作为 JUnit 运行

java - 使用cucumber v1.2.4时运行cucumber测试的方法没有签名

grails - 使用Rest Client Builder在图数据库上运行密码查询的Grails查询

multithreading - 我如何并行化 GPars Actors?

jquery - Firefox 停止提交但 jQuery 提交事件仍然运行

linq - 如何在 linq 中删除和重新插入实体?

testing - 从 Grails 2.0.3 升级到 2.2.1 : Tests Failing

jquery - 如何访问 geb 模块的根元素