Best Puppeteer-sharp code snippet using PuppeteerSharp.Browser.GetUserAgentAsync
BrowserUtils.cs
Source:BrowserUtils.cs  
...79                    NavigationOptions navigationOptions = new NavigationOptions() {80                        Timeout = 0,81                        WaitUntil = waitUntilNavigations82                    };83                    string originalUserAgent = await browser.GetUserAgentAsync();84                    await page.SetUserAgentAsync($"{originalUserAgent} {USER_AGENT_SUFFIX}");85                    if (cookies.Any()) {86                        await page.SetCookieAsync(cookies.ToArray());87                    }88                    await page.GoToAsync(url, navigationOptions);89                    await InjectCustomStylesAsync(page, ref options);90                    91                    bool hasPageNumbers = await page.EvaluateFunctionAsync<bool>("(window.UltimatePDF? window.UltimatePDF.hasPageNumbers : function() { return false; })");92                    if (hasPageNumbers) {93                        /*94                         * When the layout has page numbers, we first retrieve a95                         * first blank pdf to calculate the number of pages.96                         * Then, knowing how many pages, we can layout the headers and footers,97                         * and retrieve the final pdf.98                         */99                        byte[] blankContents = await page.PdfDataAsync(options);100                        using (var blankPdf = new PDFUtils(blankContents)) {101                            await page.EvaluateFunctionAsync("window.UltimatePDF.layoutPages", blankPdf.Pages);102                            return await page.PdfDataAsync(options);103                        }104                    } else {105                        return await page.PdfDataAsync(options);106                    }107                } finally {108                    await Cleanup(page);109                }110            } finally {111                Cleanup(browser);112            }113        }114        private Task InjectCustomStylesAsync(Page page, ref PdfOptions options) {115            /*116             * It seems that Puppeteer is not overriding the page styles from the print stylesheet.117             * As a workaround, we inject a <style> tag with the @page overrides at the end of <head>.118             * This issue might be eventually resolved in Puppeteer, and seems to be tracked by https://github.com/GoogleChrome/puppeteer/issues/393119             */120            string overrides = string.Empty;121            if (!options.PreferCSSPageSize && options.Width != null && options.Height != null) {122                overrides += $"size: {options.Width} {options.Height}; ";123            }124            if (options.MarginOptions.Top != null) {125                overrides += $"margin-top: {options.MarginOptions.Top}; ";126            }127            if (options.MarginOptions.Right != null) {128                overrides += $"margin-right: {options.MarginOptions.Right}; ";129            }130            if (options.MarginOptions.Bottom != null) {131                overrides += $"margin-bottom: {options.MarginOptions.Bottom}; ";132            }133            if (options.MarginOptions.Left != null) {134                overrides += $"margin-left: {options.MarginOptions.Left}; ";135            }136            if (!string.IsNullOrEmpty(overrides)) {137                /* Change the options so that Puppeteer respects our overrides */138                options.PreferCSSPageSize = true;139                options.Width = options.Height = null;140                options.MarginOptions = new MarginOptions();141                /* We must add the <style> tag at the end of <body> to make sure it is not overriden */142                string pageOverrides = "@page { " + overrides + "}";143                return page.EvaluateExpressionAsync($"const style = document.createElement('style'); style.innerHTML = '{pageOverrides}'; document.head.appendChild(style);");144            } else {145                return Task.CompletedTask;146            }147        }148        public async Task<byte[]> ScreenshotPNG(string url, IEnumerable<CookieParam> cookies, ViewPortOptions viewport, ScreenshotOptions options, RevisionInfo revision) {149            LaunchOptions launchOptions = new LaunchOptions() {150                ExecutablePath = revision.ExecutablePath,151                Args = BrowserArgs,152                Headless = true,153                DefaultViewport = viewport,154                Timeout = 0155            };156            browser = await Puppeteer.LaunchAsync(launchOptions);157            try {158                var page = await browser.NewPageAsync();159                try {160                    NavigationOptions navigationOptions = new NavigationOptions() {161                        Timeout = 0162                    };163                    string originalUserAgent = await browser.GetUserAgentAsync();164                    await page.SetUserAgentAsync($"{originalUserAgent} {USER_AGENT_SUFFIX}");165                    if (cookies.Any()) {166                        await page.SetCookieAsync(cookies.ToArray());167                    }168                    await page.GoToAsync(url, navigationOptions);169                    return await page.ScreenshotDataAsync(options);170                } finally {171                    await Cleanup(page);172                }173            } finally {174                Cleanup(browser);175            }176        }177        public bool UserAgentMatches(string userAgent) {...ChromePersistentClient.cs
Source:ChromePersistentClient.cs  
...67            page.WaitForNavigationAsync(n).Wait();68        }69        public IEnumerable<KeyValuePair<string, string>> PagesContent()70        {71            //var userAgent = this.browser.GetUserAgentAsync().Result;72            //var version = this.browser.GetVersionAsync().Result;73            //var last = this.browser.Targets().ToList().Last().PageAsync().Result;74            var pages = this.browser.PagesAsync().Result;75            foreach (var item in pages)76            {77                yield return new KeyValuePair<string, string>(item.Url, item.GetContentAsync().Result);78            }79        }80        public async Task<Newtonsoft.Json.Linq.JToken> ListCookiesAsync()81        {82            var cookies = await page.GetCookiesAsync(url);83            var obj = cookies.Select(s => new84            {85                Domain = s.Domain,...PuppeteerSharpBrowserAdapter.cs
Source:PuppeteerSharpBrowserAdapter.cs  
...69            // }70            71            _browser.Dispose();72        }73        public Task<string> GetUserAgentAsync() => _browser.GetUserAgentAsync();74        public IEnumerable<IPageAdapter> GetPageAdapters() => _pageAdapters;75    }76}...VkBrwCommunity.cs
Source:VkBrwCommunity.cs  
...41                Height = 768,42                Width = 102443            });44            string ver = await browser.GetVersionAsync();45            string userAgent = await browser.GetUserAgentAsync();46            await communityPage.SetUserAgentAsync("Mozilla / 5.0(Windows NT 10.0; Win64; x64) AppleWebKit / 537.36(KHTML, like Gecko) Chrome / 74.0.3723.0 Safari / 537.36");47            48            await communityPage.GoToAsync(CommunityUrl);49            ElementHandle followersLoaded = await communityPage.WaitForSelectorAsync("#public_followers");50        }51    }52}...BrowserAdapterTests.cs
Source:BrowserAdapterTests.cs  
...12        [TestMethod]13        public async Task Returns_String_UserAgent()14        {15            using var adapter = new PuppeteerSharpBrowserAdapter(1);16            var result = await adapter.GetUserAgentAsync();17            Assert.IsNotNull(result);18            Assert.AreNotEqual(0, result.Length);19        }20        [TestMethod]21        public void Returns_PageAdapterList_Equal_In_Length_To_Count_Parameter()22        {23            const int PAGE_COUNT = 2;24            25            using var adapter = new PuppeteerSharpBrowserAdapter(PAGE_COUNT);26            var result = adapter.GetPageAdapters();27            28            Assert.AreEqual(PAGE_COUNT, result.Count());29        }30        [TestMethod]...WebBrowser.cs
Source:WebBrowser.cs  
...18            IWebPage page = new WebPage(await _browser.NewPageAsync());19            20            return page;21        }22        public async Task<string> GetUserAgentAsync()23        {24            return await _browser.GetUserAgentAsync();25        }26    }27}...AnonymizeUaPlugin.cs
Source:AnonymizeUaPlugin.cs  
...15            _customAction = uaAction;16        }17        public override async Task OnPageCreated(Page page)18        {19            var ua = await page.Browser.GetUserAgentAsync();20            ua = ua.Replace("HeadlessChrome", "Chrome");21            var regex = new Regex(@"/\(([^)]+)\)/");22            ua = regex.Replace(ua, "(Windows NT 10.0; Win64; x64)");23            if (_customAction != null)24                ua = _customAction(ua);25            await page.SetUserAgentAsync(ua);26        }27    }28}...UserAgentTests.cs
Source:UserAgentTests.cs  
...11        }12        [Fact]13        public async Task ShouldIncludeWebKit()14        {15            var userAgent = await Browser.GetUserAgentAsync();16            Assert.NotEmpty(userAgent);17            Assert.Contains("WebKit", userAgent);18        }19    }20}...GetUserAgentAsync
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                }12            });13            var page = await browser.NewPageAsync();14            var userAgent = await page.EvaluateExpressionAsync<string>("navigator.userAgent");15            Console.WriteLine(userAgent);16            await browser.CloseAsync();17        }18    }19}GetUserAgentAsync
Using AI Code Generation
1var browser = await Puppeteer.LaunchAsync(new LaunchOptions2{3    Args = new string[] { "--no-sandbox" }4});5var page = await browser.NewPageAsync();6var userAgent = await page.EvaluateFunctionAsync<string>("() => navigator.userAgent");7Console.WriteLine(userAgent);8await browser.CloseAsync();9Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/80.0.3987.0 Safari/537.3610public Task SetUserAgentAsync(string userAgent);11var browser = await Puppeteer.LaunchAsync(new LaunchOptions12{13    Args = new string[] { "--no-sandbox" }14});15var page = await browser.NewPageAsync();16await page.SetUserAgentAsync("Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/80.0.3987.0 Safari/537.36");17var userAgent = await page.EvaluateFunctionAsync<string>("() => navigator.userAgent");18Console.WriteLine(userAgent);19await browser.CloseAsync();20Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/80.0.3987.0 Safari/537.36GetUserAgentAsync
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 userAgent = await browser.GetUserAgentAsync();14            Console.WriteLine(userAgent);15            await browser.CloseAsync();16        }17    }18}19Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36GetUserAgentAsync
Using AI Code Generation
1var browser = await Puppeteer.LaunchAsync(new LaunchOptions { Headless = false });2var page = await browser.NewPageAsync();3await page.WaitForSelectorAsync("#detected_value");4var userAgent = await page.EvaluateExpressionAsync<string>("document.querySelector('#detected_value').textContent");5Console.WriteLine(userAgent);6await browser.CloseAsync();7PuppeteerSharp.Browser.GetUserAgentAsync() method8var userAgent = await browser.GetUserAgentAsync();9using System;10using System.Threading.Tasks;11using PuppeteerSharp;12{13    {14        static async Task Main(string[] args)15        {16            var browser = await Puppeteer.LaunchAsync(new LaunchOptions { Headless = false });17            var page = await browser.NewPageAsync();18            await page.WaitForSelectorAsync("#detected_value");19            var userAgent = await browser.GetUserAgentAsync();20            Console.WriteLine(userAgent);21            await browser.CloseAsync();22        }23    }24}25Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/91.0.4472.0 Safari/537.36GetUserAgentAsync
Using AI Code Generation
1using System;2using System.Threading.Tasks;3using PuppeteerSharp;4{5    {6        static async Task Main(string[] args)7        {8            await new BrowserFetcher().DownloadAsync(BrowserFetcher.DefaultRevision);9            var browser = await Puppeteer.LaunchAsync(new LaunchOptions10            {11            });12            var page = await browser.NewPageAsync();13            string userAgent = await browser.GetUserAgentAsync();14            Console.WriteLine(userAgent);15            await browser.CloseAsync();16        }17    }18}19Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/78.0.3882.0 Safari/537.3620using System;21using System.Threading.Tasks;22using PuppeteerSharp;23{24    {25        static async Task Main(string[] args)26        {27            await new BrowserFetcher().DownloadAsync(BrowserFetcher.DefaultRevision);28            var browser = await Puppeteer.LaunchAsync(new LaunchOptions29            {30            });31            var page = await browser.NewPageAsync();32            string userAgent = await page.GetUserAgentAsync();33            Console.WriteLine(userAgent);34            await browser.CloseAsync();35        }36    }37}38Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/78.0.3882.0 Safari/537.3639using System;40using System.Threading.Tasks;41using PuppeteerSharp;42{43    {44        static async Task Main(string[] args)45        {46            await new BrowserFetcher().DownloadAsync(BrowserFetcher.DefaultRevision);47            var browser = await Puppeteer.LaunchAsync(new LaunchOptions48            {49            });50            var page = await browser.NewPageAsync();51            string userAgent = await page.MainFrame.GetUserAgentAsync();52            Console.WriteLine(userAgent);53            await browser.CloseAsync();54        }55    }56}57Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, likeGetUserAgentAsync
Using AI Code Generation
1using System;2using System.Threading.Tasks;3{4    {5        static async Task Main(string[] args)6        {7            var browser = await Puppeteer.LaunchAsync(new LaunchOptions { Headless = false });8            var page = await browser.NewPageAsync();9            var userAgent = await browser.GetUserAgentAsync();10            Console.WriteLine(userAgent);11            await browser.CloseAsync();12        }13    }14}15Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/77.0.3833.0 SafLearn 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!!
