Best Puppeteer-sharp code snippet using PuppeteerSharp.FileChooser.AcceptAsync
Page.cs
Source:Page.cs  
...1710        /// await Task.WhenAll(1711        ///     waitTask,1712        ///     page.ClickAsync("#upload-file-button")); // some button that triggers file selection1713        ///1714        /// await waitTask.Result.AcceptAsync('/tmp/myfile.pdf');1715        /// ]]>1716        /// </code>1717        ///1718        /// This must be called *before* the file chooser is launched. It will not return a currently active file chooser.1719        /// </example>1720        /// <param name="options">Optional waiting parameters.</param>1721        /// <returns>A task that resolves after a page requests a file picker.</returns>1722        public async Task<FileChooser> WaitForFileChooserAsync(WaitForFileChooserOptions options = null)1723        {1724            if (!_fileChooserInterceptors.Any())1725            {1726                await Client.SendAsync("Page.setInterceptFileChooserDialog", new PageSetInterceptFileChooserDialog1727                {1728                    Enabled = true...ScheduleController.cs
Source:ScheduleController.cs  
...385                                if (html2.Contains("Welcome to Instagram"))386                                {387                                    page.EvaluateExpressionAsync(@"document.querySelector(""header button"").click()");388                                    var fileChooser = await page.WaitForFileChooserAsync();389                                    await fileChooser.AcceptAsync(new string[] { HostingEnvironment.MapPath(schedule.ImagePath) });390                                    await PageNavigation(page);391                                }392                                else393                                {394                                    try395                                    {396                                        page.EvaluateExpressionAsync(ClickButton("Your Story"));397                                        var fileChooser = await page.WaitForFileChooserAsync();398                                        await fileChooser.AcceptAsync(new string[] { HostingEnvironment.MapPath(schedule.ImagePath) });399                                        await PageNavigation(page);400                                    }401                                    catch (Exception ex)402                                    {403                                        page.EvaluateExpressionAsync(ClickButton("Not Now"));404                                        var fileChooser = await page.WaitForFileChooserAsync();405                                        await fileChooser.AcceptAsync(new string[] { HostingEnvironment.MapPath(schedule.ImagePath) });406                                        await PageNavigation(page);407                                    }408                                }409                                try410                                {411                                    System.Threading.Thread.Sleep(5000);412                                    await page.EvaluateExpressionAsync(ClickButton("Add to your story"));413                                    System.Threading.Thread.Sleep(500);414                                    await PageNavigation(page);415                                    System.Threading.Thread.Sleep(5000);416                                    schedule.PostedStatus = true;417                                    schedule.LastTryDate = DateTime.Now;418                                    schedule.Exception = "";419                                }420                                catch (Exception ex)421                                {422                                    schedule.PostedStatus = true;423                                    schedule.LastTryDate = DateTime.Now;424                                    schedule.Exception = "Story Already Posted";425                                }426                            }427                            else428                            {429                                page.EvaluateExpressionAsync(@"document.querySelector(""div[data-testid=new-post-button]"").click()");430                                var fileChooser = await page.WaitForFileChooserAsync();431                                await fileChooser.AcceptAsync(new string[] { HostingEnvironment.MapPath(schedule.ImagePath) });432                                await PageNavigation(page);433                                System.Threading.Thread.Sleep(5000);434                                await page.EvaluateExpressionAsync(ClickButton("Next"));435                                await PageNavigation(page);436                                System.Threading.Thread.Sleep(5000);437                                for (int i = 0; i < 4; i++)438                                {439                                    await page.Keyboard.DownAsync(key: "Tab");440                                    System.Threading.Thread.Sleep(500);441                                }442                                await page.Keyboard.TypeAsync(schedule.Caption, new TypeOptions { Delay = 200 });443                                await page.EvaluateExpressionAsync(ClickButton("Share"));444                                System.Threading.Thread.Sleep(500);445                                await PageNavigation(page);...LicenseActivator.cs
Source:LicenseActivator.cs  
...81                        Console.WriteLine("Uploading file...");82                        var fileChooserTask = page.WaitForFileChooserAsync();83                        await page.ClickAsync("#licenseFile");84                        var fileChooser = await fileChooserTask;85                        await fileChooser.AcceptAsync(cliOptions.LicenseFile);86                        await page.ClickAsync("input[value='Next']");87                        //Activate your license88                        var unityPersonalEditionButton = await page.WaitForSelectorAsync("label[for='type_personal']");89                        Console.WriteLine("Selecting edition...");90                        await unityPersonalEditionButton.ClickAsync();91                        var notUseUnityInProfessionalCapacity = await page.WaitForSelectorAsync("label[for='option3']");92                        await notUseUnityInProfessionalCapacity.ClickAsync();93                        var nextButton = await page.WaitForSelectorAsync(".selected input[value='Next']");94                        await nextButton.ClickAsync();95                        //Download license file96                        await page.WaitForSelectorAsync("input[value='Download license file']");97                        Console.WriteLine("Downloading license file...");98                        var downloadManager = new DownloadManager(Directory.GetCurrentDirectory());99                        await downloadManager.SetupPageAsync(page);...HomeController.cs
Source:HomeController.cs  
...85                    //Dont add await for this86                    page.EvaluateExpressionAsync(87                        @"document.querySelector(""div[data-testid=new-post-button]"").click()");88                    var fileChooser = await page.WaitForFileChooserAsync();89                    await fileChooser.AcceptAsync(new string[] { "C:\\Users\\Zawar\\Desktop\\New folder (4)\\cover6.jpg" });90                    System.Threading.Thread.Sleep(5000);91                    await page.EvaluateExpressionAsync(ClickButton("Next"));92                    System.Threading.Thread.Sleep(5000);93                    for (int i = 0; i < 4; i++)94                    {95                        await page.Keyboard.DownAsync(key: "Tab");96                        System.Threading.Thread.Sleep(500);97                    }98                    await page.Keyboard.TypeAsync("Automated caption", new TypeOptions { Delay = 200 });99                    await page.EvaluateExpressionAsync(ClickButton("Share"));100                    System.Threading.Thread.Sleep(1600000);101                }102                catch (Exception ex)103                {...FileChooserAcceptTests.cs
Source:FileChooserAcceptTests.cs  
...24                waitForTask,25                Page.ClickAsync("input"));26            Page.Metrics += (_, _) => metricsTcs.TrySetResult(true);27            await Task.WhenAll(28                waitForTask.Result.AcceptAsync(TestConstants.FileToUpload),29                metricsTcs.Task);30            Assert.Equal(1, await Page.QuerySelectorAsync("input").EvaluateFunctionAsync<int>("input => input.files.length"));31            Assert.Equal(32                "file-to-upload.txt",33                await Page.QuerySelectorAsync("input").EvaluateFunctionAsync<string>("input => input.files[0].name"));34        }35        [PuppeteerTest("input.spec.ts", "FileChooser.accept", "should be able to read selected file")]36        [SkipBrowserFact(skipFirefox: true)]37        public async Task ShouldBeAbleToReadSelectedFile()38        {39            await Page.SetContentAsync("<input type=file>");40            _ = Page.WaitForFileChooserAsync().ContinueWith(t => t.Result.AcceptAsync(TestConstants.FileToUpload));41            Assert.Equal(42                "contents of the file",43                await Page.QuerySelectorAsync("input").EvaluateFunctionAsync<string>(@"async picker =>44                {45                    picker.click();46                    await new Promise(x => picker.oninput = x);47                    const reader = new FileReader();48                    const promise = new Promise(fulfill => reader.onload = fulfill);49                    reader.readAsText(picker.files[0]);50                    return promise.then(() => reader.result);51                }"));52        }53        [PuppeteerTest("input.spec.ts", "FileChooser.accept", "should be able to reset selected files with empty file list")]54        [SkipBrowserFact(skipFirefox: true)]55        public async Task ShouldBeAbleToResetSelectedFilesWithEmptyFileList()56        {57            await Page.SetContentAsync("<input type=file>");58            _ = Page.WaitForFileChooserAsync().ContinueWith(t => t.Result.AcceptAsync(TestConstants.FileToUpload));59            Assert.Equal(60                1,61                await Page.QuerySelectorAsync("input").EvaluateFunctionAsync<int>(@"async picker =>62                {63                picker.click();64                await new Promise(x => picker.oninput = x);65                return picker.files.length;66            }"));67            _ = Page.WaitForFileChooserAsync().ContinueWith(t => t.Result.AcceptAsync());68            Assert.Equal(69                0,70                await Page.QuerySelectorAsync("input").EvaluateFunctionAsync<int>(@"async picker =>71                {72                picker.click();73                await new Promise(x => picker.oninput = x);74                return picker.files.length;75            }"));76        }77        [PuppeteerTest("input.spec.ts", "FileChooser.accept", "should not accept multiple files for single-file input")]78        [SkipBrowserFact(skipFirefox: true)]79        public async Task ShouldNotAcceptMultipleFilesForSingleFileInput()80        {81            await Page.SetContentAsync("<input type=file>");82            var waitForTask = Page.WaitForFileChooserAsync();83            await Task.WhenAll(84                waitForTask,85                Page.ClickAsync("input"));86            await Assert.ThrowsAsync<PuppeteerException>(() => waitForTask.Result.AcceptAsync(87                "./assets/file-to-upload.txt",88                "./assets/pptr.png"));89        }90        [PuppeteerTest("input.spec.ts", "FileChooser.accept", "should fail for non-existent files")]91        [SkipBrowserFact(skipFirefox: true)]92        public async Task ShouldFailForNonExistentFiles()93        {94            await Page.SetContentAsync("<input type=file>");95            var waitForTask = Page.WaitForFileChooserAsync();96            await Task.WhenAll(97                waitForTask,98                Page.ClickAsync("input"));99            await Assert.ThrowsAsync<PuppeteerException>(() => waitForTask.Result.AcceptAsync("file-does-not-exist.txt"));100        }101        [PuppeteerTest("input.spec.ts", "FileChooser.accept", "should fail when accepting file chooser twice")]102        [SkipBrowserFact(skipFirefox: true)]103        public async Task ShouldFailWhenAcceptingFileChooserTwice()104        {105            await Page.SetContentAsync("<input type=file>");106            var waitForTask = Page.WaitForFileChooserAsync();107            await Task.WhenAll(108                waitForTask,109                Page.ClickAsync("input"));110            var fileChooser = waitForTask.Result;111            await fileChooser.AcceptAsync();112            var ex = await Assert.ThrowsAsync<PuppeteerException>(() => waitForTask.Result.AcceptAsync());113            Assert.Equal("Cannot accept FileChooser which is already handled!", ex.Message);114        }115    }116}...FileChooser.cs
Source:FileChooser.cs  
...16    /// await Task.WhenAll(17    ///     waitTask,18    ///     page.ClickAsync("#upload-file-button")); // some button that triggers file selection19    /// 20    /// await waitTask.Result.AcceptAsync('/tmp/myfile.pdf');21    /// ]]>22    /// </code>23    /// </example>24    /// <remarks>25    /// In browsers, only one file chooser can be opened at a time.26    /// All file choosers must be accepted or canceled. Not doing so will prevent subsequent file choosers from appearing.27    /// </remarks>28    public class FileChooser29    {30        private CDPSession _client;31        private bool _handled;32        internal FileChooser(CDPSession client, PageFileChooserOpenedResponse e)33        {34            _client = client;35            IsMultiple = e.Mode != "selectSingle";36            _handled = false;37        }38        /// <summary>39        /// Whether file chooser allow for <see href="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/file#attr-multiple">multiple</see> file selection.40        /// </summary>41        public bool IsMultiple { get; }42        /// <summary>43        /// Accept the file chooser request with given paths. 44        /// If some of the filePaths are relative paths, then they are resolved relative to the current working directory.45        /// </summary>46        /// <param name="filePaths">File paths to send to the file chooser</param>47        /// <returns>A task that resolves after the accept message is processed by the browser</returns>48        public Task AcceptAsync(params string[] filePaths)49        {50            if (_handled)51            {52                throw new PuppeteerException("Cannot accept FileChooser which is already handled!");53            }54            _handled = true;55            var files = filePaths.Select(Path.GetFullPath);56            return _client.SendAsync("Page.handleFileChooser", new PageHandleFileChooserRequest57            {58                Action = FileChooserAction.Accept,59                Files = files,60            });61        }62        /// <summary>...AcceptAsync
Using AI Code Generation
1using System;2using System.Threading.Tasks;3using PuppeteerSharp;4{5    {6        static async Task Main(string[] args)7        {8            var browser = await Puppeteer.LaunchAsync(new LaunchOptions9            {10            });11            var page = await browser.NewPageAsync();12            await page.SetRequestInterceptionAsync(true);13            page.Request += async (sender, e) =>14            {15                await e.Request.ContinueAsync();16            };17            page.RequestFinished += async (sender, e) =>18            {19                if (e.Request.ResourceType == ResourceType.Document)20                {21                    var fileChooser = await page.WaitForFileChooserAsync();22                    await fileChooser.AcceptAsync(new string[] { "C:\\Users\\username\\Desktop\\test.txt" });23                }24            };25            await page.ScreenshotAsync("C:\\Users\\username\\Desktop\\test.png");26            await browser.CloseAsync();27        }28    }29}AcceptAsync
Using AI Code Generation
1using System;2using System.Threading.Tasks;3using PuppeteerSharp;4{5    {6        static async Task Main(string[] args)7        {8            {9            };10            var browser = await Puppeteer.LaunchAsync(options);11            var page = await browser.NewPageAsync();12            await page.ClickAsync("input[type='file']");13            var fileChooser = await page.WaitForFileChooserAsync();14            await fileChooser.AcceptAsync(new string[] { "C:\\Users\\user\\Desktop\\test.txt" });15            Console.WriteLine("Done");16            Console.ReadLine();17        }18    }19}AcceptAsync
Using AI Code Generation
1var fileChooser = await page.WaitForFileChooserAsync();2await fileChooser.AcceptAsync(new string[] { "C:\1.jpg", "C:\2.jpg" });3var fileChooser = await page.WaitForFileChooserAsync();4await fileChooser.AcceptAsync(new string[] { "C:\1.jpg", "C:\2.jpg" });5var fileChooser = await page.WaitForFileChooserAsync();6await fileChooser.AcceptAsync(new string[] { "C:\1.jpg", "C:\2.jpg" });7var fileChooser = await page.WaitForFileChooserAsync();8await fileChooser.AcceptAsync(new string[] { "C:\1.jpg", "C:\2.jpg" });9var fileChooser = await page.WaitForFileChooserAsync();10await fileChooser.AcceptAsync(new string[] { "C:\1.jpg", "C:\2.jpg" });11var fileChooser = await page.WaitForFileChooserAsync();12await fileChooser.AcceptAsync(new string[] { "C:\1.jpg", "C:\2.jpg" });13var fileChooser = await page.WaitForFileChooserAsync();14await fileChooser.AcceptAsync(new string[] { "C:\1.jpg", "C:\2.jpg" });15var fileChooser = await page.WaitForFileChooserAsync();16await fileChooser.AcceptAsync(new string[] { "C:\1.jpg", "C:\2.jpg" });17var fileChooser = await page.WaitForFileChooserAsync();18await fileChooser.AcceptAsync(new string[] { "C:\1.jpg", "C:\2.jpg" });19var fileChooser = await page.WaitForFileChooserAsync();AcceptAsync
Using AI Code Generation
1var fileChooser = await page.WaitForFileChooserAsync();2await fileChooser.AcceptAsync(new string[] { "C:\\Test\\1.txt" });3var fileChooser = await page.WaitForFileChooserAsync();4await fileChooser.SetFilesAsync(new string[] { "C:\\Test\\1.txt" });5var fileChooser = await page.WaitForFileChooserAsync();6await fileChooser.AcceptAsync(new string[] { "C:\\Test\\2.txt" });7var fileChooser = await page.WaitForFileChooserAsync();8await fileChooser.SetFilesAsync(new string[] { "C:\\Test\\2.txt" });9var fileChooser = await page.WaitForFileChooserAsync();10await fileChooser.AcceptAsync(new string[] { "C:\\Test\\3.txt" });11var fileChooser = await page.WaitForFileChooserAsync();12await fileChooser.SetFilesAsync(new string[] { "C:\\Test\\3.txt" });13var fileChooser = await page.WaitForFileChooserAsync();14await fileChooser.AcceptAsync(new string[] { "C:\\Test\\4.txt" });15var fileChooser = await page.WaitForFileChooserAsync();16await fileChooser.SetFilesAsync(new string[] { "C:\\Test\\4.txt" });17var fileChooser = await page.WaitForFileChooserAsync();18await fileChooser.AcceptAsync(new string[] { "C:\\Test\\5.txt" });19var fileChooser = await page.WaitForFileChooserAsync();20await fileChooser.SetFilesAsync(new string[] { "C:\\Test\\5.txt" });21var fileChooser = await page.WaitForFileChooserAsync();22await fileChooser.AcceptAsync(new string[] { "C:\\Test\\6.txt" });AcceptAsync
Using AI Code Generation
1using System;2using System.Threading.Tasks;3using PuppeteerSharp;4{5    {6        static async Task Main(string[] args)7        {8            var browser = await Puppeteer.LaunchAsync(new LaunchOptions9            {10                Args = new string[] { "--start-maximized" }11            });12            var page = await browser.NewPageAsync();13            var frame = page.Frames[1];14            await frame.ClickAsync("#myFile");15            var fileChooser = await page.WaitForFileChooserAsync();16            await fileChooser.AcceptAsync(new string[] { "C:\\Users\\Sandeep\\Desktop\\Selenium\\Selenium\\Test.txt" });17            await browser.CloseAsync();18        }19    }20}AcceptAsync
Using AI Code Generation
1using System;2using System.Threading.Tasks;3using PuppeteerSharp;4{5    {6        static async Task Main(string[] args)7        {8            var browser = await Puppeteer.LaunchAsync(new LaunchOptions9            {10            });11            var page = await browser.NewPageAsync();12            var frame = page.Frames[1];13            await frame.ClickAsync("#myFile");14            var fileChooser = await frame.WaitForFileChooserAsync();15            await fileChooser.SetFilesAsync(@"C:\Users\1.txt");16            await frame.ClickAsync("#submitbtn");17            await Task.Delay(5000);18            await browser.CloseAsync();19        }20    }21}AcceptAsync
Using AI Code Generation
1var fileChooser = await page.WaitForFileChooserAsync();2await fileChooser.AcceptAsync(new string[] { "C:\\Users\\username\\Desktop\\testfile.txt" });3var fileChooser = await page.WaitForFileChooserAsync();4await fileChooser.SetFilesAsync(new string[] { "C:\\Users\\username\\Desktop\\testfile.txt" });5var fileChooser = await page.WaitForFileChooserAsync();6await fileChooser.SendKeysAsync("C:\\Users\\username\\Desktop\\testfile.txt");7var fileChooser = await page.WaitForFileChooserAsync();8await page.SendKeysAsync("C:\\Users\\username\\Desktop\\testfile.txt");9var fileChooser = await page.WaitForFileChooserAsync();10await page.SetFilesAsync(new string[] { "C:\\Users\\username\\Desktop\\testfile.txt" });11var fileChooser = await page.WaitForFileChooserAsync();12await page.SetFilesAsync(new PuppeteerSharp.InputFiles("C:\\Users\\username\\Desktop\\testfile.txt"));13var fileChooser = await page.WaitForFileChooserAsync();14await page.SendKeysAsync(new PuppeteerSharp.InputFiles("C:\\Users\\username\\Desktop\\testfile.txt"));15var fileChooser = await page.WaitForFileChooserAsync();16await page.SetFilesAsync(new PuppeteerSharp.InputFiles("C:\\Users\\username\\Desktop\\testfile.txt"));17var fileChooser = await page.WaitForFileChooserAsync();18await page.SendKeysAsync(new PuppeteerSharp.InputFiles("C:\\Users\\username\\Desktop\\testfile.txt"));19var fileChooser = await page.WaitForFileChooserAsync();Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!
