Ответ 1
Используйте это для загрузки изображения с локального рабочего стола
.setValue('input[type="file"]', require('path').resolve('/home/My-PC/Desktop/img.png'))
Я использую front-end тесты, используя nightwatch.js, используя драйвер Chrome. Мне нужно проверить правильность загрузки изображений, предположительно через предоставленный входной файл, так как есть обратные вызовы, которые запускаются на успешной почте.
Я знаю, что это можно сделать с помощью метода sendKeys веб-драйвера Selenium.
Как вы можете это сделать, используя javascript и nightwatch.js? Можете ли вы получить доступ к веб-серверу Selenium или интерфейсу с ним?
Используйте это для загрузки изображения с локального рабочего стола
.setValue('input[type="file"]', require('path').resolve('/home/My-PC/Desktop/img.png'))
Как уже упоминалось выше, вы можете передать абсолютный путь к вашему входу [ type="file"], как если бы вы вводили текст в поле.
Используется функция nightwatch setValue
. Вы можете получить текущий путь к каталогу, используя Node __dirname
глобальный var.
Например:
.setValue('#upload-input', __dirname + '\\upload.jpg')
Используйте функцию client.setValue для установки абсолютного пути вашего изображения. Вот рабочий пример в моем проекте.
client.setValue('# editPictures.modal-body input [ type="file"]', '/Users/testing/pictures/CAM00003.jpg');
В моем случае есть div с id = "Upload Icon", который имеет вход с type="file"
.setValue('//div[@id="Upload Icon"]/input[@type="file"]', require('path').resolve(__dirname + '/categoryIcon.png'))
Приведенный выше код работает отлично для меня.
Это решение сработало для меня:
.setValue('#file-upload', require('path').resolve('C:/Users/Mihai/Desktop/test.png'))