2015-09-04 34 views
2

我尝试测试一个角度应用程序,只能通过从操作系统浏览器拖放文件来完成添加数据。我知道文件拖放不能直接由webdriver测试,因为浏览器不是浏览器的一部分。量角器:从资源管理器中管理丢弃文件的最佳方法是什么?

无论如何,我需要一种方法来添加一些数据到我的应用程序来测试它。我想到了不同的方法。 第一个是直接调用我的后端REST API来添加数据。我通过关注这篇博文(http://squirrel.pl/blog/2014/01/15/direct-server-http-calls-in-protractor/)尝试了这种方式,我可以将数据发送到服务器。但是,在我发送数据到服务器之前,我的前端应用程序正在进行数据检查和数据转换,并且通过这种方式我不能'使用它们。这些检查和转换已经在单元测试中进行测试,但是在我的测试中重写这些以管理我的数据文件有点令人沮丧...

所以,我认为如果我可以通过调用控制器函数直接使用我的验证文件来处理掉落的文件。通过这种方式,我只跳过拖放部分,但我使用e2e测试了拖放后所做的所有处理。这将是非常好的,但我不知道如何做到这一点......我甚至不知道是否有可能做这样的事情...

任何意见将是伟大的:)

回答

0

如果你拖放文件,或者直接传递文件,真的很重要吗?两者的验证应该相同?实际上,你可以上传与量角器文件很容易地:

var path = require('path'); 

var uploadFile = element(by.css('input[type="file"]')); 
var jpgAbsolutePath = path.resolve(__dirname, '../td/image.jpg'); 
uploadFile.sendKeys(jpgAbsolutePath); 
+0

是的,但我们并没有在我们的应用程序:) – Mathilde

+1

那么任何文件输入,你应该能够调用控制器功能与JS:'浏览器.driver.executeScript('alert('某种控制器调用')');' – cvakiitho

+1

我不知道这个语法。谢谢。不幸的是,我无法测试它,因为我不再参与这个项目。 – Mathilde

相关问题