У меня есть модальный, который открывается, чтобы разрешить загрузку. Модаль имеет кнопку для многократных выгрузок, файл для загрузки, выгрузки, отмены и подтверждения (который вы нажимаете после выбора файла, нажатия кнопки загрузки, а затем выбора ok для возврата к предыдущему экрану). Все работает, но это не угловое приложение, поэтому он не ждет завершения загрузки, прежде чем выбрать ok. Я вставляю в browser.driver.sleep, который дает ему достаточно времени, но я знаю, что это ненадежное решение. Любые мысли о том, как ждать завершения загрузки, прежде чем выбрать ОК?Ждите завершения загрузки до нажатия кнопки
Тест Код:
this.selectsUploadButton = function() {
this.waitsForElementToBeClickable(uploadButton);
uploadButton.click().then(function() {
browser.driver.sleep(5000);
uploadButtonOkLogo.click();
});
};
HTML-: Ошибка я получаю не кликабельны из-за наложения.
<div id="uploadLogoDialog" class="modal-dialog" style="display: block;">
<div class="upload-overlay"></div>
<div class="upload-logo-container">
<div class="upload-logo-header">Image must be under 50 MB and in the following formats: .JPG, .GIF, .PNG</div>
<div class="upload-logo-content">
<div class="select-container">
<button class="btn btn-select" data-bind="click: assosiateLogoImage">
<span class="icon icon-select"></span>
<span class="label">Select file</span>
</button>
</div>
<button class="btn btn-upload" data-bind="click: startLogoUpload, disable: logo.isUploaded" disabled="">
<button class="btn btn-ok" data-bind="click: closeUploadLogoDialog">
<div class="upload-progress-container">
<div class="upload-progress" style="display: none;" data-bind="visible: isUploading">
<div class="progress-bar ui-progressbar ui-widget ui-widget-content ui-corner-all" data-bind="progressBar: { value: progressValue }" role="progressbar" aria-valuemin="0" aria-valuemax="100" aria-valuenow="0">
<div class="ui-progressbar-value ui-widget-header ui-corner-left" style="display: none; width: 0%;"></div>
</div>
<div class="percentage" data-bind="text: progressValue() + ' %'">0 %</div>
</div>
</div>
<form id="uploadForm" action="https://iplan.preview.s3.amazonaws.com/" enctype="multipart/form-data" target="uploadIFrame" method="post">
<div class="file-input" data-bind="css: {'ie': isIE}">
<input id="logoFile" type="file" data-bind="event:{ 'change': handleLogoSelection }" name="file">
</div>
</form>
</div>
</div>
<div class="upload-busy" data-bind="visible: isUploading" style="display: none;"></div>
</div>
Есть ли уведомление, которое генерируется после завершения загрузки? Если это так, вы можете использовать его, чтобы подождать, пока на странице не появится уведомление. Или, если есть некоторая загрузка%, возможно, вы можете это использовать. Также вы можете обновить html-код и в своем вопросе? Спасибо –
@Girish есть панель загрузки, и кнопка загрузки темнеть. –
И что происходит, когда действие загрузки завершается? Разве это не уведомление? –