Selenium + Protractactor: загрузка файла в chrome & firefox - PullRequest
0 голосов
/ 27 апреля 2020

Я пытался обновить файл conf. js для загрузки файлов, он должен работать для firefox и chrome (независимо друг от друга).

Я следил руководства и ответы онлайн, (включая, но не ограничиваясь этим, стекопоток), но он не работает для меня полностью. Chrome не проблема, firefox - мой источник проблем.

При firefox он просто не загружает файл, в отличие от chrome, где он загружает файл.

Обновление : Я не могу отключить всплывающее окно из firefox

Соответствующую информацию из конф. js

exports.config = {
[...]
 multiCapabilities: [
    {
      browserName: 'chrome',
      'goog:chromeOptions': {
        w3c: false, // problems with latest chrome driver... browser.actions is causing issues: https://github.com/jan-molak/serenity-js/issues/329
        prefs: {
          download: {
            prompt_for_download: false,
            directory_upgrade: true,
            default_directory: downloadsPath,
          },
        },
      },
    } , 
    {
      browserName: 'firefox',
      'goog:chromeOptions': {
        marionette: true,
        'moz:firefoxOptions': {
          prefs: {
            'pdfjs.disabled': true,
            'browser.download.folderList': 2,
            'browser.download.dir': downloadsPath,
            'browser.download.panel.shown': false,
            'browser.download.useDownloadDir': true,
            'browser.download.manager.useWindow': false,
            'browser.helperApps.alwaysAsk.force': false,
            'browser.helperApps.neverAsk.openFile': true,
            'browser.download.manager.closeWhenDone': false,
            'browser.download.manager.alertOnEXEOpen': false,
            'browser.download.manager.showWhenStarting': false,
            'browser.download.manager.focusWhenStarting': false,
            'browser.download.manager.showAlertOnComplete': false,
            'browser.helperApps.neverAsk.saveToDisk': 'application/vnd.openxmlformats',
          },
        },
      },
    },
  ],
[...]
};

Соответствующий код из моего dowload-e2e. js spe c:

    const downloadBtn = manipulations.getDomObject('download-contract-button', 'id');
    browser.executeScript('arguments[0].click();', downloadBtn.getWebElement());

    try {
      await downloads.verifyFileExists(`file-name.docx`);
      await downloads.verifyFileSize(`file-name.docx`, 0);
    } catch (err) {
      throw new Error(`ERROR: ${err.message}`);
    }
    downloads.removeFile(`file-name.docx`);

1 Ответ

1 голос
/ 27 апреля 2020

Firefox / Chrome попробуйте так:

const multiCapabilities = [
{
    browserName: 'chrome',
    'goog:chromeOptions': {
        w3c: false, // due problems with latest chrome driver
                    // browser.actions is causing issues: https://github.com/jan-molak/serenity-js/issues/329
        prefs: {
            download: {
                'prompt_for_download': false,
                'directory_upgrade': true,
                'default_directory': downloadsPath
            }
        }
    }
},
{
    browserName: 'firefox',
    'goog:chromeOptions': {
        marionette: true,
        'moz:firefoxOptions': {
            prefs: {
                'browser.download.folderList': 2,
                'browser.download.dir': downloadsPath,
                'browser.download.manager.showWhenStarting': false,
                'browser.helperApps.alwaysAsk.force': false,
                'browser.download.manager.useWindow': false,
                'browser.helperApps.neverAsk.saveToDisk':   'application/octet-stream, application/json, ' +
                                                            'text/comma-separated-values, text/csv, application/csv, ' +
                                                            'application/excel, application/vnd.ms-excel, ' +
                                                            'application/vnd.msexcel, text/anytext, text/plaintext, ' +
                                                            'image/png, image/pjpeg, image/jpeg, application/zip'
            }
        }
    }
}

];

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...