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.
Чтобы загрузить изображение,
Сначала создайте папку с именем 'resources' в каталоге вашего проекта и сохраните изображение в этом каталоге
Используйте приведенный ниже код для загрузки файла. В третьей строке вам нужно заменить селектор на тот, что в вашем приложении. Обратите внимание, что если в приложении есть кнопка типа "Загрузить" или "Добавить фото", вам не нужно нажимать эту кнопку перед добавлением приведенного ниже кода.
var path = require("path"); var toUpload = path.join(__dirname, "..", "resources", "CompanyPic.jpg"); browser.chooseFile('input[type="file"]', toUpload);