在这个应用程序上开发了这个新的Export功能,我正在尝试使用Behat/Mink进行测试.这里的问题是,当我点击导出链接时,页面上的数据会被导出为CSV并保存在/ Downloads下,但我在页面上看不到任何响应代码或任何内容.
有没有办法导出CSV并导航到/ Downloads文件夹来验证文件?
假设您正在使用 Selenium 驱动程序,您可以“单击”链接并$this->getSession()->wait(30)
直到下载完成,然后检查下载文件夹中的文件。
这将是最简单的解决方案。或者,您可以使用代理,例如BrowserMob)来监视所有请求,然后验证响应代码。但仅就这一点而言,这将是一条非常痛苦的道路。
\n\n检查文件是否已下载的最简单方法是使用基本断言定义另一个步骤。
\n\n/**\n * @Then /^the file ".+" should be downloaded$/\n */\npublic function assertFileDownloaded($filename) \n{\n if (!file_exists(\'/download/dir/\' . $filename)) {\n throw new Exception();\n }\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n当您下载同名文件并且浏览器以不同名称保存该文件时,这可能会出现问题。作为解决方案,您可以添加@BeforeScenario
挂钩来清除已知文件列表。
另一个问题是下载目录本身 \xe2\x80\x93 对于其他用户/机器来说可能会有所不同。要解决此问题,您可以将下载目录behat.yml
作为参数传递给上下文构造函数,请阅读文档。
但最好的方法是将配置传递给 Selenium 并指定下载目录,以确保它始终清晰,并且您确切知道在哪里搜索。我不确定如何做到这一点,但通过快速谷歌搜索来看,这似乎是可能的。
\n 归档时间: |
|
查看次数: |
3964 次 |
最近记录: |