3

angular2+ プロジェクトでは、ボタンをクリックする e2e テストケースがあり、ファイルがダウンロードされ、コンテンツがチェックされます。通常モードでは動作しますが、--headless モードでは動作しません。ファイルはダウンロードされず、テストケースはタイムアウトします。

私の protractor.conf.js では、さまざまな場所で見つけた多くのフラグをすでに試しました。

const os = require('os');
[...]

  capabilities: {
    'browserName': 'chrome',
    chromeOptions: {
      args: ['--headless', '--disable-gpu', '--disable-popup-blocking', '--no-sandbox', '--window-size=1024,768', '--remote-debugging-port=9222', "--disable-dev-shm-usage"],
      prefs: {
        'download': {
          'prompt_for_download': false,
          'directory_upgrade': true,
          'default_directory': os.homedir() + '/Downloads'
        }, 
        safebrowsing: {enabled: false, disable_download_protection: true},
        browser: {set_download_behavior: { behavior: 'allow' }}
      }
    }
  },

成功せずに。

また、このように構成できることをどこかで読みました

// works for headless and "normal" mode
browser.driver.sendChromiumCommand('Page.setDownloadBehavior', {
    'behavior': 'allow',
    'downloadPath': DOWNLOAD_DIR
});

しかし、protractor.conf.js にも spec ts ファイルにも、「browser」変数には「sendChromiumCommand」はありません。

どうすればこれを機能させることができますか? 前もって感謝します。

4

1 に答える 1