Как проверить E2E загрузку ng-файла?Протранслятор E2E тест ng-file-upload
<div id="fileBTSToUpload" ngf-drop ngf-select ng-model="fileBTS" class="drop-box" ngf-accept="'.txt'" ngf-drag-over-class="'dragover'"> Drag and Drop here
</div>
Как проверить E2E загрузку ng-файла?Протранслятор E2E тест ng-file-upload
<div id="fileBTSToUpload" ngf-drop ngf-select ng-model="fileBTS" class="drop-box" ngf-accept="'.txt'" ngf-drag-over-class="'dragover'"> Drag and Drop here
</div>
Установите версию вашего трактора на «1.6.1» и ng-file-upload в «9.0.1». Для того, чтобы сделать это, действуйте следующим образом: npm install [email protected]
Редактировать файл: bower.json и установить версию:
"ng-file-upload": "~9.0.1",
, а затем выполнить следующие действия:
bower install
Угловой код должен также содержит кнопку в ней для работы:
<div id="fileBTSToUpload" ngf-drop ngf-select ng-model="fileBTS" class="drop-box" ngf-accept="'.txt'" ngf-drag-over-class="'dragover'"> Drag and Drop
</div>
<button id="btn2" ng-click="uploadFileToUrl(fileBTS, btsUrl);">upload</button>
Код Жасмина для тестирования ЕоГО выглядят следующим образом:
it('a sample test...',function(){
//Assemble
browser.get('/the_page_url');
//Act
var fileToUpload = './some-file.csv';
var path = require('path');
var absolutePath = path.resolve(__dirname,fileToUpload);
var input = element(by.css('input[type=file]'));
input.sendKeys(absolutePath);
element(by.id('btn2')).click();
browser.waitForAngular();
//Assert
expect(2).toEqual(2);
//browser.sleep(5000);
//browser.pause();
});
И путь для установки, сделайте следующее:
npm install path
Проблема заключается в том, что, с одной только Protractor
, вы не можете сделать фактическое перетаскивание файла в назначенное на странице. И еще одна проблема заключается в том, что если вам удастся открыть диалоговое окно загрузки браузера, вы не сможете управлять им через Protractor
/WebDriverJS
.
Общий подход состоит в нахождении input
элемента с type="file"
и отправить ключи к нему, содержащему абсолютного пути к файлу, который вы хотите загрузить. input
должен быть на странице для загрузки на работу, хотя обычно input
скрыт, и вам нужно будет сделать его видимым для выполнения «отправки ключей». Смотрите примеры решения здесь:
Я подозреваю, что downvotes являются из стадии установки транспортир 1.6.1. Не знаете, почему вы предлагаете использовать версию старше года и 2 стабильные версии за текущим. Хотя я должен согласиться, средняя часть, где вы отправляете ключи на вход, верна. – alecxe