我尝试测试一个角度应用程序,只能通过从OS资源管理器中拖放文件来添加数据。我知道文件拖放不能直接通过webdriver测试,因为资源管理器不是浏览器的一部分。
无论如何,我需要一种方法来向我的应用添加一些数据来测试它。我想到了不同的方法。 第一个是直接调用我的后端REST API来添加数据。我按照这篇博文(http://squirrel.pl/blog/2014/01/15/direct-server-http-calls-in-protractor/)尝试了这个方法,我可以将数据发送到服务器。但是数据的许多检查和转换都是由我的前端应用程序在下载之前完成的,然后才将数据发送到服务器,并且由于这种情况,我无法解决这个问题。使用它们。这些检查和转换已经在单元测试中进行了测试,但是在我的测试中重写这些以管理我的数据文件有点令人沮丧......
所以,我认为如果我可以通过调用处理丢弃文件的控制器函数直接使用我的验证文件会很棒。有了这个方法,我只跳过了拖放部分,但是我用e2e测试了所有进程,这些都是在放弃后进行的。这将是非常好的,但我无法弄清楚如何做到这一点..我甚至不知道是否有可能做那样的事情......
任何建议都会很棒:)
答案 0 :(得分:0)
如果您拖放文件或直接传递文件,这真的很重要吗?两者的验证应该相同吗?你可以很容易地用量角器上传文件:
var path = require('path');
var uploadFile = element(by.css('input[type="file"]'));
var jpgAbsolutePath = path.resolve(__dirname, '../td/image.jpg');
uploadFile.sendKeys(jpgAbsolutePath);