title: NodeJS Puppeteer setDownloadBehavior issue
body: <p>I am trying to set custom path for downloading but chrome puts files into typical <code>Downloads</code> folder anyways.</p>
  
  <pre><code>const puppeteer = require('puppeteer');
  
  (async () =&gt; {
     const browser = await puppeteer.launch({
        executablePath: 'C:/Program Files (x86)/Google/Chrome/Application/chrome.exe',
        defaultViewport: {
            width: 1920,
            height: 1080
        },
        headless: false,
        userDataDir: "./user_data"
     });
  
     const page = await browser.newPage();
  
     await page.goto(
       'https://example.com/page-with-the-file-link',
        { waitUntil: 'domcontentloaded' },
     );
  
     await page._client.send('Page.setDownloadBehavior', {
           behavior: 'allow',
           downloadPath: 'C:/Users/Me/Downloads/custom/folder/'
     });
  
     console.log('Start downloading');
  
     await page.click('a.download-btn');
  
     await page.waitFor(5000);
  
     console.log('Complete');
     await browser.close();
  })();
  </code></pre>
  
  <p>So, it ignores <code>downloadPath</code> option and puts the file to default <code>C:/Users/Me/Downloads</code> folder.</p>
  
  <p>Also it does not wait for 5 seconds, it only has time to download the file and exits right after clicking download link.</p>
  
  <pre><code>Start downloading
  Complete
  (node:51016) UnhandledPromiseRejectionWarning: Error: WebSocket is not open: readyState 3 (CLOSED)
      at WebSocket.send (C:\Users\Me\Downloads\puppeteer\node_modules\ws\lib\websocket.js:329:19)
      at WebSocketTransport.send (C:\Users\Me\Downloads\puppeteer\node_modules\puppeteer\lib\WebSocketTransport.js:60:14)
      at Connection._rawSend (C:\Users\Me\Downloads\puppeteer\node_modules\puppeteer\lib\Connection.js:86:21)
      at Connection.send (C:\Users\Me\Downloads\puppeteer\node_modules\puppeteer\lib\Connection.js:72:21)
      at gracefullyCloseChrome (C:\Users\Me\Downloads\puppeteer\node_modules\puppeteer\lib\Launcher.js:194:20)
      at Browser.close (C:\Users\Me\Downloads\puppeteer\node_modules\puppeteer\lib\Browser.js:255:31)
      at Browser.&lt;anonymous&gt; (C:\Users\Me\Downloads\puppeteer\node_modules\puppeteer\lib\helper.js:112:23)
      at C:\Users\Me\Downloads\puppeteer\test-download-file.js:97:18
      at &lt;anonymous&gt;
  (node:51016) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 3)
  (node:51016) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
  </code></pre>
  
  <p>Why this script just exits after clicking download link and how to do it correctly? Is there any function for catching downloading status and monitor progress?</p>
  
  <p>Any advice will be appreciated, thanks!</p>