使用Nightwatch.js上传图像文件

时间:2014-06-26 21:40:37

标签: javascript node.js selenium file-upload nightwatch.js

我正在使用Chrome驱动程序使用nightwatch.js运行前端测试。我需要测试图像上传是否正常工作,大概是通过提供的文件输入,因为有成功发布的回调。

我知道这可以使用Selenium Web Driver的sendKeys方法完成。

如何使用javascript和nightwatch.js完成此操作? 你可以访问Selenium webdriver或它的界面吗?

6 个答案:

答案 0 :(得分:7)

使用此功能从本地桌面上传图片

.setValue('input[type="file"]', require('path').resolve('/home/My-PC/Desktop/img.png')) 

答案 1 :(得分:2)

正如上面提到的那样,您可以将绝对路径传递给您的输入[type =" file"],就像您在字段中键入文本一样。

这使用了夜视仪的setValue功能。您可以使用节点__dirname全局变量

来检索当前目录路径

例如: .setValue('#upload-input', __dirname + '\\upload.jpg')

答案 2 :(得分:1)

使用client.setValue函数设置图像的绝对路径。这是我项目中的工作示例。

client.setValue(' #editPictures .modal-body input [type =" file"]',' /Users/testing/pictures/CAM00003.jpg&# 39);

答案 3 :(得分:1)

在我的情况下,有一个id为id ="上传图标"输入类型="文件"

.setValue('//div[@id="Upload Icon"]/input[@type="file"]', require('path').resolve(__dirname + '/categoryIcon.png'))

上面的代码对我来说很好。

答案 4 :(得分:0)

此解决方案对我有用:

.setValue('#file-upload', require('path').resolve('C:/Users/Mihai/Desktop/test.png'))

答案 5 :(得分:0)

这对我有用。

.setValue('input[type="file"]', require('path').resolve('/home/My-PC/Desktop/img.png'))

可能只有其他人遇到了,可能是不同版本的Firefox在2年后对同事无效。