How to use PagesAsync method of PuppeteerSharp.Browser class

Best Puppeteer-sharp code snippet using PuppeteerSharp.Browser.PagesAsync

Methods.cs

Source:Methods.cs Github

copy

Full Screen

...59 var browser = await extra.LaunchAsync(launchOptions);60 browser.IgnoreHTTPSErrors = data.ConfigSettings.PuppeteerSettings.IgnoreHttpsErrors;61 // Save the browser for further use62 data.SetObject("puppeteer", browser);63 var page = (await browser.PagesAsync()).First();64 SetPageAndFrame(data, page);65 await SetPageLoadingOptions(data, page);66 // Authenticate if the proxy requires auth67 if (data.UseProxy && data.Proxy is { NeedsAuthentication: true, Type: ProxyType.Http } proxy)68 await page.AuthenticateAsync(new Credentials { Username = proxy.Username, Password = proxy.Password });69 data.Logger.Log($"{(launchOptions.Headless ? "Headless " : "")}Browser opened successfully!", LogColors.DarkSalmon);70 }71 [Block("Closes an open puppeteer browser", name = "Close Browser")]72 public static async Task PuppeteerCloseBrowser(BotData data)73 {74 data.Logger.LogHeader();75 var browser = GetBrowser(data);76 await browser.CloseAsync();77 StopYoveProxyInternalServer(data);78 data.Logger.Log("Browser closed successfully!", LogColors.DarkSalmon);79 }80 [Block("Opens a new page in a new browser tab", name = "New Tab")]81 public static async Task PuppeteerNewTab(BotData data)82 {83 data.Logger.LogHeader();84 var browser = GetBrowser(data);85 var page = await browser.NewPageAsync();86 await SetPageLoadingOptions(data, page);87 SetPageAndFrame(data, page); // Set the new page as active88 data.Logger.Log($"Opened a new page", LogColors.DarkSalmon);89 }90 [Block("Closes the currently active browser tab", name = "Close Tab")]91 public static async Task PuppeteerCloseTab(BotData data)92 {93 data.Logger.LogHeader();94 var browser = GetBrowser(data);95 var page = GetPage(data);96 97 // Close the page98 await page.CloseAsync();99 100 // Set the first page as active101 page = (await browser.PagesAsync()).FirstOrDefault();102 SetPageAndFrame(data, page);103 if (page != null)104 await page.BringToFrontAsync();105 data.Logger.Log($"Closed the active page", LogColors.DarkSalmon);106 }107 [Block("Switches to the browser tab with a specified index", name = "Switch to Tab")]108 public static async Task PuppeteerSwitchToTab(BotData data, int index)109 {110 data.Logger.LogHeader();111 var browser = GetBrowser(data);112 var page = (await browser.PagesAsync())[index];113 await page.BringToFrontAsync();114 SetPageAndFrame(data, page);115 data.Logger.Log($"Switched to tab with index {index}", LogColors.DarkSalmon);116 }117 [Block("Reloads the current page", name = "Reload")]118 public static async Task PuppeteerReload(BotData data)119 {120 data.Logger.LogHeader();121 var page = GetPage(data);122 await page.ReloadAsync();123 SwitchToMainFramePrivate(data);124 data.Logger.Log($"Reloaded the page", LogColors.DarkSalmon);125 }126 [Block("Goes back to the previously visited page", name = "Go Back")]...

Full Screen

Full Screen

Form1.cs

Source:Form1.cs Github

copy

Full Screen

...44 }45 private async void button2_Click(object sender, EventArgs e)46 {47 //获取最后的标签页48 var page = (await browser.PagesAsync()).Last();49 var path = System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop),"screenshot.jpg");50 //设置截图选项51 ScreenshotOptions screenshotOptions = new ScreenshotOptions();52 //screenshotOptions.Clip = new PuppeteerSharp.Media.Clip() { Height = 0, Width = 0, X = 0, Y = 0 };//设置截剪区域53 screenshotOptions.FullPage = true; //是否截取整个页面54 screenshotOptions.OmitBackground = false;//是否使用透明背景,而不是默认白色背景55 screenshotOptions.Quality = 100; //截图质量 0-100(png不可用)56 screenshotOptions.Type = ScreenshotType.Jpeg; //截图格式 57 await page.ScreenshotAsync(path,screenshotOptions);58 MessageBox.Show($"截图已经保存至{path}");59 }60 private async void button3_Click(object sender, EventArgs e)61 {62 //获取最后的标签页63 var page = (await browser.PagesAsync()).Last();64 var path = System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), "screenshot.pdf");65 //设置PDF选项66 PdfOptions pdfOptions = new PdfOptions();67 pdfOptions.DisplayHeaderFooter = false; //是否显示页眉页脚68 pdfOptions.FooterTemplate = ""; //页脚文本69 pdfOptions.Format = new PuppeteerSharp.Media.PaperFormat(8.27m,11.69m); //pdf纸张格式 英寸为单位 70 pdfOptions.HeaderTemplate = ""; //页眉文本71 pdfOptions.Landscape = false; //纸张方向 false-垂直 true-水平 72 pdfOptions.MarginOptions = new PuppeteerSharp.Media.MarginOptions() { Bottom = "0px", Left = "0px", Right = "0px", Top = "0px" }; //纸张边距,需要设置带单位的值,默认值是None73 pdfOptions.Scale = 1m; //PDF缩放,从0-174 await page.PdfAsync(path, pdfOptions);75 MessageBox.Show($"PDF已经保存至{path}");76 }77 private async void Form1_FormClosing(object sender, FormClosingEventArgs e)...

Full Screen

Full Screen

Program.cs

Source:Program.cs Github

copy

Full Screen

...70 Headless = false,71 UserDataDir = UserDataDirPath(),72 DefaultViewport = null,73 });74 browserPage = (await browser.PagesAsync()).FirstOrDefault() ?? await browser.NewPageAsync();75 await browserPage.ExposeFunctionAsync("____callback____", (string returnValue) =>76 {77 callbackFromBrowserDelegate?.Invoke(returnValue);78 return 0;79 });80 }81 }82}...

Full Screen

Full Screen

Web.cs

Source:Web.cs Github

copy

Full Screen

...25 {26 var browser = await CreateBrowser(browserExecutablePath);27 try28 {29 var openPages = await browser.PagesAsync();30 await openPages[0].GoToAsync(webPage);31 var pageContent = await openPages[0].GetContentAsync();32 return pageContent;33 }34 catch (Exception)35 {36 return String.Empty;37 }38 finally39 {40 await browser.CloseAsync();41 }42 }43 /// <summary>44 /// Fetches the Html for an Episode-Page.45 /// </summary>46 /// <param name="browserExecutablePath">The Path to a fetched Browser.</param>47 /// <param name="webPage">The Url to an Episode-Page.</param>48 /// <param name="cookie">A KeyValuePair which includes a Cookie Name/Value which will be inserted in the Browser.</param>49 /// <returns>The Html of the Page in Form of a String.</returns>50 public async Task<string> GetWebPage(string browserExecutablePath, string webPage, KeyValuePair<string, string> cookie)51 {52 var browser = await CreateBrowser(browserExecutablePath);53 try54 {55 var openPages = await browser.PagesAsync();56 await openPages[0].GoToAsync(webPage);57 await openPages[0].DeleteCookieAsync();58 await openPages[0].SetCookieAsync(new CookieParam()59 {60 Domain = ".crunchyroll.com",61 Name = cookie.Key,62 Value = cookie.Value,63 HttpOnly = true64 });65 await openPages[0].ReloadAsync();66 var pageContent = await browser.PagesAsync().Result[0].GetContentAsync();67 return pageContent;68 }69 catch (Exception)70 {71 return String.Empty;72 }73 finally74 {75 await browser.CloseAsync();76 }77 }78 /// <summary>79 /// Creates and Launches a Browser.80 /// </summary>...

Full Screen

Full Screen

HeadlessChromeManager.cs

Source:HeadlessChromeManager.cs Github

copy

Full Screen

...33 var timer = new Timer(TimeSpan.FromMinutes(1).TotalMilliseconds);34 timer.AutoReset = true;35 timer.Elapsed += async (sender, e) =>36 {37 var pages = await browser.PagesAsync();38 if (pages.Length == 0)39 {40 lock (_locker)41 {42 timer.Stop();43 timer.Dispose();44 browser.CloseAsync();45 browser.Dispose();46 browser = null;47 _logger.LogInformation("已关闭后台 Chrome 。");48 return;49 }50 }51 };52 timer.Start();53 });54 }55 public Page GetNewPage()56 {57 lock (_locker)58 {59 if (browser == null)60 {61 LaunchBrowserAsync().Wait();62 //把启动时默认创建的空白页标签页关掉63 browser.PagesAsync().Result[0].CloseAsync().Wait();64 _logger.LogInformation("已启动后台 Chrome 。");65 }66 return browser.NewPageAsync().Result;67 }68 }69 }70}...

Full Screen

Full Screen

PuppeteerUtility.csx

Source:PuppeteerUtility.csx Github

copy

Full Screen

...14 Headless = false,15 ExecutablePath = findChrome(),16 Args = new[]{ "--app=http://localhost/null" }17 });18 var page = (await browser.PagesAsync())[0];19 //await page.WaitForNavigationAsync();20 return new PageResult{21 Browser = browser, // they may need the browser to close it after they are done22 Page = page23 };24 }25 26}27public class PageResult {28 public PuppeteerSharp.Browser Browser {get; set; }29 public PuppeteerSharp.Page Page {get; set; }30 /*31 For deconstruct in dotnet see this: https://docs.microsoft.com/en-us/dotnet/csharp/deconstruct32 */...

Full Screen

Full Screen

BrowserService.cs

Source:BrowserService.cs Github

copy

Full Screen

...15 }16 public static async Task<BrowserService> LaunchBrowser() {17 await new BrowserFetcher().DownloadAsync(BrowserFetcher.DefaultRevision);18 var browser = await Puppeteer.LaunchAsync(new LaunchOptions { Headless = false });19 var initialPage = (await browser.PagesAsync()).First();20 return new BrowserService(browser, initialPage);21 }22 public async Task GoToPage(string url) {23 await _currentPage.GoToAsync(url, WaitUntilNavigation.Networkidle0);24 if ((await GetHtml()).Contains("Verify your identity"))25 Console.WriteLine("ERROR: reCAPTCHA");26 }27 public async Task<string> GetHtml()28 => await _currentPage.GetContentAsync();29 public void Dispose() 30 => _browser?.Dispose();31 }32}...

Full Screen

Full Screen

TaskBase.cs

Source:TaskBase.cs Github

copy

Full Screen

...23 return await Browser.NewPageAsync();24 }25 protected async Task<Page> GetLastingPage()26 {27 _page ??= (await Browser.PagesAsync()).First();28 return _page;29 }30 protected async void Close()31 {32 var pages = await Browser.PagesAsync();33 foreach (var page in pages)34 {35 await page.CloseAsync();36 }37 }38 }39}

Full Screen

Full Screen

PagesAsync

Using AI Code Generation

copy

Full Screen

1var browser = await Puppeteer.LaunchAsync(new LaunchOptions2{3 Args = new string[] { "--no-sandbox" }4});5var page = await browser.NewPageAsync();6var pages = await browser.PagesAsync();7foreach (var p in pages)8{9 Console.WriteLine(p.Url);10}11await browser.CloseAsync();

Full Screen

Full Screen

PagesAsync

Using AI Code Generation

copy

Full Screen

1var browser = await Puppeteer.LaunchAsync(new LaunchOptions2{3 ExecutablePath = @"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe",4 Args = new string[] { "--no-sandbox", "--disable-setuid-sandbox" }5});6var page = await browser.NewPageAsync();7var pages = await browser.PagesAsync();8var count = pages.Count;9Console.WriteLine(count);10Console.ReadLine();11var browser = await Puppeteer.LaunchAsync(new LaunchOptions12{13 ExecutablePath = @"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe",14 Args = new string[] { "--no-sandbox", "--disable-setuid-sandbox" }15});16var page = await browser.NewPageAsync();17var pages = browser.Pages();18var count = pages.Count;19Console.WriteLine(count);20Console.ReadLine();21var browser = await Puppeteer.LaunchAsync(new LaunchOptions22{23 ExecutablePath = @"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe",24 Args = new string[] { "--no-sandbox", "--disable-setuid-sandbox" }25});26var page = await browser.NewPageAsync();27var pages = await page.Browser.PagesAsync();28var count = pages.Count;29Console.WriteLine(count);30Console.ReadLine();31var browser = await Puppeteer.LaunchAsync(new LaunchOptions32{33 ExecutablePath = @"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe",34 Args = new string[] { "--no-sandbox", "--disable-setuid-sandbox" }35});36var page = await browser.NewPageAsync();37var pages = page.Browser.Pages();38var count = pages.Count;39Console.WriteLine(count);40Console.ReadLine();

Full Screen

Full Screen

PagesAsync

Using AI Code Generation

copy

Full Screen

1var browser = await Puppeteer.LaunchAsync(new LaunchOptions2{3});4var page = await browser.NewPageAsync();5var pages = await browser.PagesAsync();6foreach (var p in pages)7{8 Console.WriteLine(p.Url);9}10await browser.CloseAsync();11var browser = await Puppeteer.LaunchAsync(new LaunchOptions12{13});14var page = await browser.NewPageAsync();15var pages = await browser.PagesAsync();16foreach (var p in pages)17{18 Console.WriteLine(p.Url);19}20await browser.CloseAsync();21var browser = await Puppeteer.LaunchAsync(new LaunchOptions22{23});24var page = await browser.NewPageAsync();25var pages = await browser.PagesAsync();26foreach (var p in pages)27{28 Console.WriteLine(p.Url);29}30await browser.CloseAsync();31var browser = await Puppeteer.LaunchAsync(new LaunchOptions32{33});34var page = await browser.NewPageAsync();35var pages = await browser.PagesAsync();36foreach (var p in pages)37{38 Console.WriteLine(p.Url);39}40await browser.CloseAsync();

Full Screen

Full Screen

PagesAsync

Using AI Code Generation

copy

Full Screen

1using System;2using System.Threading.Tasks;3using PuppeteerSharp;4{5 static async Task Main(string[] args)6 {7 await new BrowserFetcher().DownloadAsync(BrowserFetcher.DefaultRevision);8 using (var browser = await Puppeteer.LaunchAsync(new LaunchOptions { Headless = true }))9 using (var page = await browser.NewPageAsync())10 {11 await page.PdfAsync("1.pdf");12 }13 using (var browser = await Puppeteer.LaunchAsync(new LaunchOptions { Headless = true }))14 using (var page = await browser.NewPageAsync())15 {16 var pageCount = await page.PagesAsync("1.pdf");17 Console.WriteLine("Page Count: " + pageCount);18 }19 }20}21using System;22using System.Threading.Tasks;23using PuppeteerSharp;24{25 static async Task Main(string[] args)26 {27 await new BrowserFetcher().DownloadAsync(BrowserFetcher.DefaultRevision);28 using (var browser = await Puppeteer.LaunchAsync(new LaunchOptions { Headless = true }))29 using (var page = await browser.NewPageAsync())30 {31 await page.PdfAsync("2.pdf");32 }33 using (var browser = await Puppeteer.LaunchAsync(new LaunchOptions { Headless = true }))34 using (var page = await browser.NewPageAsync())35 {36 var pageCount = await page.PagesAsync("2.pdf");37 Console.WriteLine("Page Count: " + pageCount);38 }39 }40}41using System;42using System.Threading.Tasks;43using PuppeteerSharp;44{45 static async Task Main(string[] args)46 {47 await new BrowserFetcher().DownloadAsync(BrowserFetcher.DefaultRevision);48 using (var browser = await Puppeteer.LaunchAsync(new LaunchOptions { Headless = true }))49 using (var page = await browser.NewPageAsync())50 {

Full Screen

Full Screen

Automation Testing Tutorials

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.

LambdaTest Learning Hubs:

YouTube

You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful