


Populate the Cookie Container like this: private CookieContainer BuildCookieContainer(IEnumerable cookies) NEED THIS TIMEOUT TO KEEP THE BROWSER OPEN WHILE THE FILE IS DOWNLOADING!Īwait page.WaitForTimeoutAsync(1000 * configs.DownloadDurationEstimateInSeconds) Var cookieContainer = BuildCookieContainer(pageCookies) Īwait DownloadFileRequiringHeadersAndCookies(getUrl, fullPath, cookieContainer, cancellationToken) Īwait page.ClickAsync("button") Var pageCookies = await page.GetCookiesAsync() Add the cookies to a container for the upcoming Download GET request If (contentType.Contains("application/vnd.ms-excel")) Handle the response with the Excel download Page.Response += async (sender, responseCreatedEventArgs) => Handle multiple responses and process the Download await using (var browser = await Puppeteer.LaunchAsync(new LaunchOptions ))Īwait using (var page = await browser.NewPageAsync()) Once I had that particular response, I had to attach headers and cookies for the remote server to send the downloadable data in the response. In essence, before the button click, I had to process multiple responses and handle a single response with the download.

I needed both Headers and Cookies set before the download would start. Puppeteer.launch().then(async browser => ) Īwait page.waitForSelector('#genesis-content > article > header > h1') Īwait page.focus('#wpcf7-f97-p311-o1 > form > p:nth-child(2) > label > span > input')Īwait ('PuppeteerBot') Īwait page.focus('#wpcf7-f97-p311-o1 > form > p:nth-child(3) > label > span > input')Īwait page.focus('#wpcf7-f97-p311-o1 > form > p:nth-child(4) > label > span > textarea')Īwait had a more difficult variation of this, using Puppeteer Sharp. The first basic thing is to visit a website with Puppeteer.
