webdriverio (javascript) - загрузить изображение

Поэтому я пишу тест для загрузки изображения с помощью webdriverio javascript

http://webdriver.io/api/utility/chooseFile.html

Я предполагаю, что это команда, которую я использую, кто-то может дать мне пример, как это сделать?

Спасибо

2 ответа

Это пример в интеграционном тесте.

describe('choosing a file in an <input type=file>', function() {
    before(h.setup());

    var path = require('path');
    var toUpload = path.join(__dirname, '..', '..', 'fixtures', 'cat-to-upload.gif');

    it('uploads a file and fills the form with it', function() {
        return this.client.chooseFile('#upload-test', toUpload).catch(function(err) {
            assert.ifError(err);
        }).getValue('#upload-test').then(function(val) {
            assert.ok(/cat\-to\-upload\.gif$/.test(val));
        });
    });

    it('errors if file does not exists', function() {
        return this.client.chooseFile('#upload-test', '$#$#940358435').catch(function(err) {
            assert.notEqual(err, null);
        });
    });
});

client.chooseFile (селектор, LocalPath).then(обратный вызов);

Первый параметр - это селектор (идентификатор вашего поля ввода), второй параметр - путь к файлу, который вы будете загружать.

Вам просто нужно нажать кнопку отправить, чтобы загрузить файл. Обратите внимание, что это, вероятно, не будет работать везде. Требуемая конечная точка файла даже не задокументирована в проекте Selenium.

Чтобы загрузить изображение,

  1. Сначала создайте папку с именем 'resources' в каталоге вашего проекта и сохраните изображение в этом каталоге

  2. Используйте приведенный ниже код для загрузки файла. В третьей строке вам нужно заменить селектор на тот, что в вашем приложении. Обратите внимание, что если в приложении есть кнопка типа "Загрузить" или "Добавить фото", вам не нужно нажимать эту кнопку перед добавлением приведенного ниже кода.

    var path = require("path");
    var toUpload = path.join(__dirname, "..", "resources", 
    "CompanyPic.jpg");
    browser.chooseFile('input[type="file"]', toUpload);
    
Другие вопросы по тегам