Javascript 使用Nightwatch.js上载图像文件

Javascript 使用Nightwatch.js上载图像文件,javascript,node.js,selenium,file-upload,nightwatch.js,Javascript,Node.js,Selenium,File Upload,Nightwatch.js,我正在使用Chrome驱动程序使用nightwatch.js运行前端测试。我需要测试图像上传是否正常工作,可能是通过提供的文件输入,因为在成功的帖子上会运行回调 我知道这可以使用SeleniumWeb驱动程序的sendKeys方法来完成 如何使用javascript和nightwatch.js实现这一点? 您可以访问Selenium webdriver或其接口吗?使用client.setValue函数设置图像的绝对路径。下面是我的项目中的工作示例 client.setValue(“#editPi

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

我知道这可以使用SeleniumWeb驱动程序的sendKeys方法来完成

如何使用javascript和nightwatch.js实现这一点?
您可以访问Selenium webdriver或其接口吗?

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


client.setValue(“#editPictures.modal body input[type=“file”]”,“/Users/testing/pictures/CAM00003.jpg”)

如上所述,您可以将绝对路径传递给输入[type=“file”],就像您在字段中键入文本一样

这使用了夜表的
setValue
功能。您可以使用节点的
\uu dirname
全局变量检索当前目录路径

例如:
.setValue(“#上载输入”,“_udirname+”\\upload.jpg”)

用于从本地桌面上载图像

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

在我的例子中,有一个id=“Upload Icon”的div,它的输入为type=“file”


上述代码对我来说很好。

此解决方案对我来说很有效:

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

.setValue('input[type=“file”]”,require('path')。解析('/home/My-PC/Desktop/img.png'))


其他人可能遇到的唯一问题是,firefox的不同版本在两年前对一个同事来说不起作用

我很想知道如何选择一个文件,我认为这样的事情是不可能的。你能详细说明一下为什么在
\uu dirname
之后加上双反斜杠吗?Cheers@grayedfox:反斜杠是特殊字符前面的转义字符。在本例中,您将反斜杠(我们要使用的特殊字符)转义为反斜杠(表示以下字符的转义字符应按字面解释)。在这样设置文件输入值后,是否只有我需要.pause()?欢迎使用StackVoerflow。请使用降价设置答案的格式:
.setValue('#file-upload', require('path').resolve('C:/Users/Mihai/Desktop/test.png'))