Загрузка транспортира застряла при всплывающем поиске файла - PullRequest
1 голос
/ 15 марта 2019

Я пытаюсь выяснить, что не так с кодом ниже:

it('should upload a photo', function(){

        var photo = './photos/et-test.jpeg',
            exactPhoto = path.resolve(__dirname, photo);
        var form = element(by.id('fileupload'));
        var upload = element(by.css('input[type = "file"]'));
        var addFiles = element(by.cssContainingText('.btn.btn-success.fileinput-button.mb-10','Add files...'));
        var uploadBtn = element(by.css('.btn.btn-primary.start.mt-20'));

        element(by.cssContainingText('.inline_link','Upload more album photos now')).click();
        element(by.id('secondary_upload_link')).click();


        browser.wait(EC.visibilityOf(addFiles), 5000);
        addFiles.click();

        upload.sendKeys(exactPhoto);

        browser.wait(EC.visibilityOf(uploadBtn), 5000);
        uploadBtn.click();

        expect(element(by.css('.table')).getText()).toBe('Upload Finised');

    });

Я застреваю во всплывающем окне filesearch и получаю эту ошибку:

Сообщение: Ошибка: время ожидания истекло после 5006 мс

Чего-то не хватает или должно было быть сделано на основе потока моего кода?

Ответы [ 3 ]

0 голосов
/ 19 марта 2019
  1. Да, вам не нужно нажимать на него, просто sendKeys() для этого input элемента
  2. Иногда необходимо сделать это input видимым.Просто попробуйте вот так (в моем случае это работает для await / async транспортир):

private addAttachment = element(by.css('input[type="file"]'))

await browser.executeScript("arguments[0].style.visibility = 'visible'; arguments[0].style.height = '1px'; arguments[0].style.width = '1px'; arguments[0].style.opacity = 1; arguments[0].style.display = 'inline'; arguments[0].style.overflow = 'visible'", this.addAttachment)

await browser.executeScript("arguments[0].focus();", await this.addAttachment.getWebElement())

await this.addAttachment.sendKeys(path)

0 голосов
/ 28 марта 2019

Попробуйте это:

var photo = './photos/et-test.jpg',
exactPhoto = path.resolve(__dirname, photo);
var form = element(by.id('fileupload')); ///Users/leochardc/ET/photos/et-test.jpg
var upload = element(by.css('.fileupload_section input[type = "file"]'));
var addFiles = element(by.cssContainingText('.btn.btn-success.fileinput-button.mb-10','Add files...'));
var uploadBtn = element(by.css('.btn.btn-primary.start.mt-20'));
var uploadFinished = element(by.css('.fileupload_section .text-center p'));

browser.get(url);
element(by.cssContainingText('.inline_link','Upload more album photos now')).click();
element(by.id('secondary_upload_link')).click();


browser.wait(EC.visibilityOf(addFiles), 5000);
// addFiles.click();

upload.sendKeys(exactPhoto);

var previewPic = element(by.css('.fileupload_section.fileupload_files'));

browser.wait(EC.visibilityOf(previewPic), 5000);

browser.wait(EC.visibilityOf(uploadBtn), 5000);
uploadBtn.click();

browser.wait(EC.visibilityOf(uploadFinished), 30000);

expect(uploadFinished.getText()).toBe('Upload Finished');
0 голосов
/ 15 марта 2019

Если я правильно понимаю вашу проблему, вы видите всплывающее окно при загрузке файла.Можете ли вы попробовать следующие возможности в вашей конфигурации (если вы используете Chrome)

  capabilities: {
    browserName: 'chrome',
    chromeOptions: {
      prefs: {
        download: {
          'prompt_for_download': false,
          'directory_upgrade': true,
          'default_directory': 'src/test/javascript/e2e/downloads'(or where ever you prefer)
        }
      }
    }
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...