Загрузка файла изображения с помощью Nightwatch.js

Я использую front-end тесты, используя nightwatch.js, используя драйвер Chrome. Мне нужно проверить правильность загрузки изображений, предположительно через предоставленный входной файл, так как есть обратные вызовы, которые запускаются на успешной почте.

Я знаю, что это можно сделать с помощью метода sendKeys веб-драйвера Selenium.

Как вы можете это сделать, используя javascript и nightwatch.js? Можете ли вы получить доступ к веб-серверу Selenium или интерфейсу с ним?

Ответ 1

Используйте это для загрузки изображения с локального рабочего стола

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

Ответ 2

Как уже упоминалось выше, вы можете передать абсолютный путь к вашему входу [ type="file"], как если бы вы вводили текст в поле.

Используется функция nightwatch setValue. Вы можете получить текущий путь к каталогу, используя Node __dirname глобальный var.

Например: .setValue('#upload-input', __dirname + '\\upload.jpg')

Ответ 3

Используйте функцию client.setValue для установки абсолютного пути вашего изображения. Вот рабочий пример в моем проекте.

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

Ответ 4

В моем случае есть div с id = "Upload Icon", который имеет вход с type="file"

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

Приведенный выше код работает отлично для меня.

Ответ 5

Это решение сработало для меня:

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