我有一个要求,我需要编写功能测试来下载文件并测试其内容。 所以我可以说有两个部分。 1)确保单击链接下载文件 2)读取文件并检查其内容。它是一个csv文件,因此我可以对内容进行一些操作。
答案 0 :(得分:3)
这样做有几个问题。一个是如果您在远程系统上运行浏览器,则需要一种方法将文件恢复到运行Intern的系统。第二个问题是,您需要知道下载文件在下载时的最终位置。第三个问题是某些浏览器(FF和IE)弹出开放的操作系统级别对话框,Selenium无法处理。
第一个问题是:你真的需要在浏览器中下载文件吗?听起来您可能正在测试服务而不是浏览器,在这种情况下,您可以使用Intern下载文件并在那里进行检查。
假设您确实需要通过浏览器下载文件,您应该能够将浏览器配置为不打开确认对话框并将文件下载到已知位置,这至少可以处理上述3个问题中的2个。请注意,我还没有真正测试过这个。
在Firefox中,您可以设置test profile and use it when running tests。您可能需要配置以下属性:
browser.download.dir
:'下载文件夹' browser.download.folderList
:2 browser.helperApps.neverAsk.saveToDisk
:' text / csv' browser.download.manager.showWhenStarting
:false 对于Chrome,您可以通过environment descriptor传递选项。具体选项应为:
'profile.default_content_settings.popups': 0
'download.default_directory': 'path to download folder'
一旦您设置了浏览器,您的测试代码就需要单击该链接,然后等待一段不确定的时间(Selenium不提供任何类型的下载进度数据),然后抓住来自Intern测试本身的文件(使用网络请求或本地文件操作)来检查它。