Best Puppeteer-sharp code snippet using PuppeteerSharp.Page.GoToAsync
PuppeteerMethods.cs
Source:PuppeteerMethods.cs  
...37            {38                try39                {40                    WaitUntilNavigation[] waitUntil = new[] { WaitUntilNavigation.Networkidle0, WaitUntilNavigation.Networkidle2, WaitUntilNavigation.DOMContentLoaded, WaitUntilNavigation.Load };41                    await page.GoToAsync("http://www.google.com", new NavigationOptions { WaitUntil = waitUntil });42                    var filePath = "D:\\PdfFiles";43                    var fileName = Guid.NewGuid() + ".pdf";44                    if (!Directory.Exists(filePath))45                        Directory.CreateDirectory(filePath);46                    await page.PdfAsync(Path.Combine(filePath, fileName));47                    return new SuccessPuppeteerResult("Pdf Created Succesfully");48                }49                catch (Exception ex)50                {51                    return new ErrorPuppeteerResult("Error Occured! Detail: " + ex.Message);52                }53                finally54                {55                    CloseChromium(page);56                }57            }58        }59        public static async Task<PuppeteerResult> TakeScreenShot(string url)60        {61            using (var page = await OpenChromiumPage())62            {63                try64                {65                    WaitUntilNavigation[] waitUntil = new[] { WaitUntilNavigation.Networkidle0, WaitUntilNavigation.Networkidle2, WaitUntilNavigation.DOMContentLoaded, WaitUntilNavigation.Load };66                    await page.GoToAsync(url, new NavigationOptions { WaitUntil = waitUntil });67                    var filePath = "D:\\Screenshots";68                    var fileName = Guid.NewGuid() + ".png";69                    if (!Directory.Exists(filePath))70                        Directory.CreateDirectory(filePath);71                    await page.SetViewportAsync(new ViewPortOptions72                    {73                        Width = 1280,74                        Height = 72075                    });76                    await page.ScreenshotAsync(Path.Combine(filePath, fileName));77                    return new SuccessPuppeteerResult("Screenshot has taken succesfully");78                }79                catch (Exception ex)80                {81                    return new ErrorPuppeteerResult("Error Occured! Detail: " + ex.Message);82                }83                finally84                {85                    CloseChromium(page);86                }87            }88        }89        public static async Task<string> TakeHtmlContent()90        {91            using (var page = await OpenChromiumPage())92            {93                WaitUntilNavigation[] waitUntil = new[] { WaitUntilNavigation.Networkidle0, WaitUntilNavigation.Networkidle2, WaitUntilNavigation.DOMContentLoaded, WaitUntilNavigation.Load };94                await page.GoToAsync("http://www.google.com", new NavigationOptions { WaitUntil = waitUntil });95                return await page.GetContentAsync();96            }97        }98        public static async Task<string> SetHtmlToPage()99        {100            using (var page = await OpenChromiumPage())101            {102                WaitUntilNavigation[] waitUntil = new[] { WaitUntilNavigation.Networkidle0, WaitUntilNavigation.Networkidle2, WaitUntilNavigation.DOMContentLoaded, WaitUntilNavigation.Load };103                await page.SetContentAsync("<div><h1>Hello World!</h1></div>");104                return await page.GetContentAsync();105            }106        }107        public static async Task<PuppeteerDataResult<string>> GetTitleOfPage(string url)108        {109            using (var page = await OpenChromiumPage())110            {111                try112                {113                    WaitUntilNavigation[] waitUntil = new[] { WaitUntilNavigation.Networkidle0, WaitUntilNavigation.Networkidle2, WaitUntilNavigation.DOMContentLoaded, WaitUntilNavigation.Load };114                    await page.GoToAsync(url, new NavigationOptions { WaitUntil = waitUntil });115                    var title = await page.GetTitleAsync();116                    return new SuccessPuppeteerDataResult<string>(title, "Get Title Successfully");117                }118                catch (Exception ex)119                {120                    return new ErrorPuppeteerDataResult<string>("Error Occured! Detail: " + ex.Message);121                }122                finally123                {124                    CloseChromium(page);125                }126            }127        }128        public static async Task<Frame[]> GetAllFrames()129        {130            using (var page = await OpenChromiumPage())131            {132                WaitUntilNavigation[] waitUntil = new[] { WaitUntilNavigation.Networkidle0, WaitUntilNavigation.Networkidle2, WaitUntilNavigation.DOMContentLoaded, WaitUntilNavigation.Load };133                await page.GoToAsync("https://www.google.com", new NavigationOptions { WaitUntil = waitUntil });134                return page.Frames;135            }136        }137        public static async Task<PuppeteerResult> LoginFacebook(string username, string password)138        {139            using (var page = await OpenChromiumPage())140            {141                try142                {143                    WaitUntilNavigation[] waitUntil = new[] { WaitUntilNavigation.Networkidle0, WaitUntilNavigation.Networkidle2, WaitUntilNavigation.DOMContentLoaded, WaitUntilNavigation.Load };144                    await page.GoToAsync("https://tr-tr.facebook.com/", new NavigationOptions { WaitUntil = waitUntil });145                    await page.WaitForSelectorAsync("input#email");146                    //You must change your facebook login informations.147                    await page.TypeAsync("input#email", username);148                    await page.TypeAsync("input#pass", password);149                    await page.ClickAsync("button[name='login']");150                    await page.WaitForNavigationAsync();151                    var HtmlContent = await page.GetContentAsync();152                    var Cookie = await page.GetCookiesAsync();153                    var TitleOfPage = await page.GetTitleAsync();154                    var filePath = "D:\\PdfFiles";155                    var fileName = Guid.NewGuid() + ".pdf";156                    if (!Directory.Exists(filePath))157                        Directory.CreateDirectory(filePath);158                    await page.PdfAsync(Path.Combine(filePath, fileName));159                    return new SuccessPuppeteerResult("Pdf Created Succesfully");160                }161                catch (Exception ex)162                {163                    return new ErrorPuppeteerResult("Error Occured! Detail: " + ex.Message);164                }165                finally166                {167                    CloseChromium(page);168                }169            }170        }171        public static async Task<List<string>> VideoLinkList(Page page)172        {173            WaitUntilNavigation[] waitUntil = new[] { WaitUntilNavigation.Networkidle0, WaitUntilNavigation.Networkidle2, WaitUntilNavigation.DOMContentLoaded, WaitUntilNavigation.Load };            174            var next = @"document.getElementById('pnnext')";175            var nexts = await page.EvaluateExpressionAsync<object>(next);176            var linkList = new List<string>();177            var isLastPage = (nexts == null);178            while ((nexts != null) || !isLastPage)179            {180                var jsSelectAllAnchors = @"Array.from(document.querySelectorAll('.g'))";181                var urls = await page.EvaluateExpressionAsync<object[]>(jsSelectAllAnchors);182                for (int i = 0; i < urls.Length; i++)183                {184                    var query = $"document.querySelectorAll('.g')[{i}].getElementsByTagName('a')[0].href";185                    linkList.Add(await page.EvaluateExpressionAsync<string>(query));186                }187                nexts = await page.EvaluateExpressionAsync<object>(next);188                if (nexts != null)189                {190                    var nextHref = @"document.getElementById('pnnext').href";191                    var nextHrefUrl = await page.EvaluateExpressionAsync<string>(nextHref);192                    isLastPage = (nexts == null) && !string.IsNullOrEmpty(nextHrefUrl);193                    await page.GoToAsync(nextHrefUrl, new NavigationOptions { WaitUntil = waitUntil });194                    nexts = await page.EvaluateExpressionAsync<object>(next);195                }196                else197                {198                    isLastPage = true;199                }200            }201            return linkList;202        } 203        public static async Task<PuppeteerDataResult<List<string>>> GetVideoSearchVideoResultUrlList(string url, string searchWord)204        {205            using (var page = await OpenChromiumPage())206            {207                WaitUntilNavigation[] waitUntil = new[] { WaitUntilNavigation.Networkidle0, WaitUntilNavigation.Networkidle2, WaitUntilNavigation.DOMContentLoaded, WaitUntilNavigation.Load };208                await page.GoToAsync(url, new NavigationOptions { WaitUntil = waitUntil });209                await SearchOnGoogle(searchWord, page);210                //Click Video Tab211                var videoTabElement = @"document.getElementsByClassName('hdtb-mitem')[4].getElementsByTagName('a')[0].href";212                var videoTabLink = await page.EvaluateExpressionAsync<string>(videoTabElement);                213                await page.GoToAsync(videoTabLink, new NavigationOptions { WaitUntil = waitUntil });214                                215                var result= await VideoLinkList(page);                                 216                return new SuccessPuppeteerDataResult<List<string>>(result, "Get Title Successfully");               217            }218        }219        public static async Task<PuppeteerDataResult<string>> GetSearchStaticticDetail(string url, string searchWord)220        {221            using (var page = await OpenChromiumPage())222            {223                WaitUntilNavigation[] waitUntil = new[] { WaitUntilNavigation.Networkidle0, WaitUntilNavigation.Networkidle2, WaitUntilNavigation.DOMContentLoaded, WaitUntilNavigation.Load };224                await page.GoToAsync(url, new NavigationOptions { WaitUntil = waitUntil });225                await SearchOnGoogle(searchWord, page);226                var jsExpression = @"document.querySelectorAll('#result-stats')[0].innerHTML";227                var result = await page.EvaluateExpressionAsync<string>(jsExpression);228                return new SuccessPuppeteerDataResult<string>(result, "");229            }230        }231        private static async Task SearchOnGoogle(string searchWord, Page page)232        {233            WaitUntilNavigation[] waitUntil = new[] { WaitUntilNavigation.Networkidle0, WaitUntilNavigation.Networkidle2, WaitUntilNavigation.DOMContentLoaded, WaitUntilNavigation.Load };234            //Search Text Input235            await page.WaitForSelectorAsync("input[name='q']");236            await page.TypeAsync("input[name='q']", searchWord);237            //Search on Google Button and Click Operation238            await page.WaitForSelectorAsync("input[name='btnK']");...SaveWebPage.xaml.cs
Source:SaveWebPage.xaml.cs  
...41                    Headless = true42                });4344                var page = await browser.NewPageAsync();  //æå¼ä¸ä¸ªæ°æ ç¾45                await page.GoToAsync(this.tbox_Url.Text); //访é®é¡µé¢4647                //设置æªå¾é项48                PuppeteerSharp.ScreenshotOptions screenshotOptions = new PuppeteerSharp.ScreenshotOptions();49                //screenshotOptions.Clip = new PuppeteerSharp.Media.Clip() { Height = 0, Width = 0, X = 0, Y = 0 };//设置æªåªåºå50                screenshotOptions.FullPage = true; //æ¯å¦æªåæ´ä¸ªé¡µé¢51                screenshotOptions.OmitBackground = false;//æ¯å¦ä½¿ç¨éæèæ¯ï¼è䏿¯é»è®¤ç½è²èæ¯52                screenshotOptions.Quality = 100; //æªå¾è´¨é 0-100ï¼pngä¸å¯ç¨ï¼53                screenshotOptions.Type = PuppeteerSharp.ScreenshotType.Jpeg; //æªå¾æ ¼å¼5455                var fileName = Environment.CurrentDirectory + $"\\download\\{await page.GetTitleAsync()}.jpg";5657                if (System.IO.File.Exists(fileName))58                {59                    fileName = fileName.Replace(".jpg", $"{DateTime.Now.ToString("ffff")}.jpg");60                }6162                await page.ScreenshotAsync(fileName, screenshotOptions);6364                if (System.IO.File.Exists(fileName))65                {66                    BitmapImage bi = new BitmapImage();67                    bi.BeginInit();68                    bi.UriSource = new Uri(fileName, UriKind.Absolute);69                    bi.EndInit();70                    this.image.Source = bi;71                }72                else73                {74                    EMessageBox.Show("ä¿åç½é¡µæªå¾å¤±è´¥");75                }7677                //卿åè®°å¾å
³éæµè§å¨åéæ¾èµæº78                browser.Disconnect();79                browser.Dispose();80            }81            catch(Exception ex)82            {83                EMessageBox.Show(ex.Message);84            }85        }8687        private async void btn_SaveAsPDF_Click(object sender, RoutedEventArgs e)88        {89            //æå¼ç½é¡µçæä½è·ä¸é¢æ¯ä¸æ ·ç90            try91            {92                await new PuppeteerSharp.BrowserFetcher().DownloadAsync(PuppeteerSharp.BrowserFetcher.DefaultRevision);93                var browser = await PuppeteerSharp.Puppeteer.LaunchAsync(new PuppeteerSharp.LaunchOptions94                {95                    Headless = true96                });97                var page = await browser.NewPageAsync();  //æå¼ä¸ä¸ªæ°æ ç¾98                await page.GoToAsync(this.tbox_Url.Text); //访é®é¡µé¢99100                //设置PDFé项101                PuppeteerSharp.PdfOptions pdfOptions = new PuppeteerSharp.PdfOptions();102                pdfOptions.DisplayHeaderFooter = false; //æ¯å¦æ¾ç¤ºé¡µç页è103                pdfOptions.FooterTemplate = "";   //é¡µèææ¬104105                var width = await page.EvaluateFunctionAsync<int>("function getWidth(){return document.body.scrollWidth}");106                var height = await page.EvaluateFunctionAsync<int>("function getHeight(){return document.body.scrollHeight}");107108                pdfOptions.Width = $"{width}px";109                pdfOptions.Height = $"{height}px";110111                pdfOptions.HeaderTemplate = "";   //é¡µçææ¬112                pdfOptions.Landscape = false;     //纸张æ¹å false-åç´ true-æ°´å¹³
...ReportService.cs
Source:ReportService.cs  
...64            var browser = await GetBrowser();6566            using (var page = await browser.NewPageAsync())67            {68                //await page.GoToAsync("http://localhost:59375/");69                //await page.GoToAsync("https://github.com/kblok/puppeteer-sharp");70                //await page.SetContentAsync("<html><head></head><body>test</body></html>");71                //await page.SetContentAsync(html);7273                htmlOrUrl = fromUrl ? htmlOrUrl : "data:text/html," + htmlOrUrl;7475                await page.GoToAsync(htmlOrUrl, new NavigationOptions()76                {77                    WaitUntil = new WaitUntilNavigation[] { WaitUntilNavigation.Load, WaitUntilNavigation.Networkidle0 },78                    Timeout = 600000 // Timeoutã10åï¼åæå¤ã¯30ç§ï¼79                });8081                var stream = await page.PdfStreamAsync(option);82                return stream;83            }84        }8586        /// <summary>87        /// ããã©ã«ãã®Pdfãªãã·ã§ã³ã使ããã88        /// </summary>89        /// <returns></returns>
...TimeTrackingController.cs
Source:TimeTrackingController.cs  
...30                {31                    return;32                }33                34                await page.GoToAsync(@"https://timetracker.bairesdev.com/");35                await page.TypeAsync("#ctl00_ContentPlaceHolder_UserNameTextBox", tracking.User);36                await page.TypeAsync("#ctl00_ContentPlaceHolder_PasswordTextBox", tracking.Password);37                await page.ClickAsync("#ctl00_ContentPlaceHolder_LoginButton");38                await page.GoToAsync(@"https://timetracker.bairesdev.com/CargaTimeTracker.aspx");39                40                await page.EvaluateExpressionAsync($@"document.querySelector('#ctl00_ContentPlaceHolder_txtFrom').value = null");41                await page.TypeAsync("#ctl00_ContentPlaceHolder_txtFrom", tracking.Date, new TypeOptions{ Delay = 30 });42                var dropProject = await page.QuerySelectorAsync("#ctl00_ContentPlaceHolder_idProyectoDropDownList");43                await dropProject.ClickAsync();44                45                var children = await dropProject.QuerySelectorAllAsync("option");46                await children[2].ClickAsync();47                    48                await page.ClickAsync("#ctl00_ContentPlaceHolder_TiempoTextBox");49                await page.TypeAsync("#ctl00_ContentPlaceHolder_TiempoTextBox", tracking.Hours.ToString(), new TypeOptions{ Delay = 30 });50                await page.ClickAsync("#ctl00_ContentPlaceHolder_idTipoAsignacionDropDownList");51                //await page.FocusAsync("#ctl00_ContentPlaceHolder_idTipoAsignacionDropDownList");52                //await page.SelectAsync("#ctl00_ContentPlaceHolder_idTipoAsignacionDropDownList", tracking.AssignmentType);...InstagramService.cs
Source:InstagramService.cs  
...25                using (var browser = await Puppeteer.LaunchAsync(optionsLaunch))26                using (var page = await browser.NewPageAsync())27                {28                    var profileUrl = $"https://www.instagram.com/{profile}/";29                    await page.GoToAsync(profileUrl);30                    var jsSelectAllAnchors = @"Array.from(document.querySelectorAll('article a')).map(el => {31                                                const url = el.href;32                                                const child = el.firstChild.firstChild.firstChild33                                                return {34                                                            link: url, 35                                                            description: child.alt, 36                                                            src: child.src37                                                       }38                                            })";39                    var images = await page.EvaluateExpressionAsync<Image[]>(jsSelectAllAnchors);40                    result = images;41                   await page.CloseAsync();42                }43            }...WebBrowser.cs
Source:WebBrowser.cs  
...11            using (var browser = await GetBrowser())12            {13                using (var page = await browser.NewPageAsync())14                {15                    await page.GoToAsync(url);16                    var bytes = await page.PdfDataAsync(new PdfOptions { MarginOptions = new PuppeteerSharp.Media.MarginOptions { Top = "1cm", Bottom = "1cm" } });17                    var browserPath = ApiFactory.GetBrowserPath();18                    var pdfPath = Path.Combine(browserPath, "pdf");19                    if (!Directory.Exists(pdfPath))20                    {21                        Directory.CreateDirectory(pdfPath);22                    }23                    var pdfFilePath = Path.Combine(pdfPath, Path.GetFileNameWithoutExtension(Path.GetTempFileName()) + ".pdf");24                    await File.WriteAllBytesAsync(pdfFilePath, bytes);25                    var fileInfo = new FileInfo(pdfFilePath);26                    return fileInfo;27                }28            }29        }30        31        public async Task<string> Content(string url)32        {33            using (var browser = await GetBrowser())34            {35                using (var page = await browser.NewPageAsync())36                {37                    await page.GoToAsync(url);38                    var result = await page.GetContentAsync();39                    return result;40                }41            }42        }43        public async Task<byte[]> Screenshot(string url)44        {45            using (var browser = await GetBrowser())46            {47                using (var page = await browser.NewPageAsync())48                {49                    await page.GoToAsync(url);50                    var result = await page.ScreenshotDataAsync();51                    return result;52                }53            }54        }55    }56}...BrowserTests.cs
Source:BrowserTests.cs  
...44            {45                if (e.Message.Type == ConsoleType.Error)46                    hasError = true;47            }48            await page.GoToAsync(BaseAddress);49            var selector = await page.WaitForSelectorAsync("div.table-responsive > table > tbody > tr:nth-child(1) > td:nth-child(3)");50            (await selector.InnerTextAsync()).ShouldBe("Astrix Mariette");51            hasError.ShouldBeFalse();52            await PrintPerf(page);53        }54    }55}...DocumentsController.cs
Source:DocumentsController.cs  
...18		public static async Task<Stream> GeneratePdfAsync(string url, bool landscape) {19			var options = new LaunchOptions { Headless = true, ExecutablePath = @"/usr/bin/chromium-browser", Args = new string[] { "--no-sandbox" } };20			using (var browser = await Puppeteer.LaunchAsync(options))21			using (var page = await browser.NewPageAsync()) {22				await page.GoToAsync(url);23				return await page.PdfStreamAsync(new PdfOptions() { Format = PuppeteerSharp.Media.PaperFormat.A4, Landscape = landscape, OmitBackground = true, PrintBackground = true });24			}25		}26	}27}...GoToAsync
Using AI Code Generation
1var page = await browser.NewPageAsync();2var page = await browser.NewPageAsync();3var page = await browser.NewPageAsync();4var page = await browser.NewPageAsync();5var page = await browser.NewPageAsync();6var page = await browser.NewPageAsync();7var page = await browser.NewPageAsync();8var page = await browser.NewPageAsync();9var page = await browser.NewPageAsync();GoToAsync
Using AI Code Generation
1var browser = await Puppeteer.LaunchAsync(new LaunchOptions2{3});4var page = await browser.NewPageAsync();5await page.ScreenshotAsync("google.png");6await browser.CloseAsync();7var browser = await Puppeteer.LaunchAsync(new LaunchOptions8{9});10var page = await browser.NewPageAsync();11await page.ScreenshotAsync("google.png");12await browser.CloseAsync();13var browser = await Puppeteer.LaunchAsync(new LaunchOptions14{15});16var page = await browser.NewPageAsync();17await page.ScreenshotAsync("google.png");18await browser.CloseAsync();19var browser = await Puppeteer.LaunchAsync(new LaunchOptions20{21});22var page = await browser.NewPageAsync();23await page.ScreenshotAsync("google.png");24await browser.CloseAsync();25var browser = await Puppeteer.LaunchAsync(new LaunchOptions26{27});28var page = await browser.NewPageAsync();29await page.ScreenshotAsync("google.png");GoToAsync
Using AI Code Generation
1using System.Threading.Tasks;2using PuppeteerSharp;3{4    {5        static async Task Main(string[] args)6        {7            {8            };9            await new BrowserFetcher().DownloadAsync(BrowserFetcher.DefaultRevision);10            using (var browser = await Puppeteer.LaunchAsync(options))11            {12                using (var page = await browser.NewPageAsync())13                {14                }15            }16        }17    }18}GoToAsync
Using AI Code Generation
1using System;2using System.Threading.Tasks;3using PuppeteerSharp;4{5    static async Task Main(string[] args)6    {7        {8            ExecutablePath = "C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe"9        };10        using (var browser = await Puppeteer.LaunchAsync(options))11        {12            using (var page = await browser.NewPageAsync())13            {14            }15        }16    }17}18using System;19using System.Threading.Tasks;20using PuppeteerSharp;21{22    static async Task Main(string[] args)23    {24        {25            ExecutablePath = "C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe"26        };27        using (var browser = await Puppeteer.LaunchAsync(options))28        {29            using (var page = await browser.NewPageAsync())30            {31                await page.WaitForTimeoutAsync(5000);32            }33        }34    }35}36using System;37using System.Threading.Tasks;38using PuppeteerSharp;39{40    static async Task Main(string[] args)41    {42        {43            ExecutablePath = "C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe"44        };45        using (var browser = await Puppeteer.LaunchAsync(options))46        {47            using (var page = await browser.NewPageAsync())48            {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!!
