Best Playwright-dotnet code snippet using Microsoft.Playwright.Tests.BrowserTypeConnectTests.Close
BrowserTypeConnectTests.cs
Source:BrowserTypeConnectTests.cs
...46 }47 [TearDown]48 public void TearDownRemoteServer()49 {50 _remoteServer.Close();51 }52 [PlaywrightTest("browsertype-connect.spec.ts", "should be able to reconnect to a browser")]53 public async Task ShouldBeAbleToReconnectToABrowser()54 {55 {56 var browser = await BrowserType.ConnectAsync(_remoteServer.WSEndpoint);57 var browserContext = await browser.NewContextAsync();58 Assert.AreEqual(browserContext.Pages.Count, 0);59 var page = await browserContext.NewPageAsync();60 Assert.AreEqual(await page.EvaluateAsync<int>("11 * 11"), 121);61 await page.GotoAsync(Server.EmptyPage);62 await browser.CloseAsync();63 }64 {65 var browser = await BrowserType.ConnectAsync(_remoteServer.WSEndpoint);66 var browserContext = await browser.NewContextAsync();67 var page = await browserContext.NewPageAsync();68 await page.GotoAsync(Server.EmptyPage);69 await browser.CloseAsync();70 }71 }72 [PlaywrightTest("browsertype-connect.spec.ts", "should send default User-Agent and X-Playwright-Browser headers with connect request")]73 public async Task ShouldSendDefaultUserAgentAndPlaywrightBrowserHeadersWithConnectRequest()74 {75 var connectionRequest = Server.WaitForWebSocketConnectionRequest();76 BrowserType.ConnectAsync($"ws://localhost:{Server.Port}/ws", new()77 {78 Headers = new Dictionary<string, string>()79 {80 ["hello-foo"] = "i-am-bar",81 }82 }).IgnoreException();83 var request = await connectionRequest;84 StringAssert.Contains("Playwright", request.Headers["User-Agent"]);85 Assert.AreEqual(request.Headers["hello-foo"], "i-am-bar");86 Assert.AreEqual(request.Headers["x-playwright-browser"], BrowserType.Name);87 }88 [PlaywrightTest("browsertype-connect.spec.ts", "should be able to connect two browsers at the same time")]89 public async Task ShouldBeAbleToConnectTwoBrowsersAtTheSameTime()90 {91 var browser1 = await BrowserType.ConnectAsync(_remoteServer.WSEndpoint);92 Assert.AreEqual(browser1.Contexts.Count, 0);93 await browser1.NewContextAsync();94 Assert.AreEqual(browser1.Contexts.Count, 1);95 var browser2 = await BrowserType.ConnectAsync(_remoteServer.WSEndpoint);96 Assert.AreEqual(browser2.Contexts.Count, 0);97 await browser2.NewContextAsync();98 Assert.AreEqual(browser2.Contexts.Count, 1);99 Assert.AreEqual(browser1.Contexts.Count, 1);100 await browser1.CloseAsync();101 Assert.AreEqual(browser2.Contexts.Count, 1);102 var page2 = await browser2.NewPageAsync();103 Assert.AreEqual(await page2.EvaluateAsync<int>("7 * 6"), 42); // original browser should still work104 await browser2.CloseAsync();105 }106 [PlaywrightTest("browsertype-connect.spec.ts", "should timeout in connect while connecting")]107 [Skip(SkipAttribute.Targets.Windows)]108 public async Task ShouldTimeoutInConnectWhileConnecting()109 {110 var exception = await PlaywrightAssert.ThrowsAsync<TimeoutException>(async () => await BrowserType.ConnectAsync($"ws://localhost:{Server.Port}/ws", new BrowserTypeConnectOptions { Timeout = 100 }));111 StringAssert.Contains("BrowserType.ConnectAsync: Timeout 100ms exceeded", exception.Message);112 }113 [PlaywrightTest("browsertype-connect.spec.ts", "should support slowmo option")]114 public async Task ShouldSupportSlowMo()115 {116 var browser = await BrowserType.ConnectAsync(_remoteServer.WSEndpoint, new BrowserTypeConnectOptions { SlowMo = 200 });117 var start = DateTime.Now;118 var context = await browser.NewContextAsync();119 await browser.CloseAsync();120 Assert.Greater((DateTime.Now - start).TotalMilliseconds, 199);121 }122 [PlaywrightTest("browsertype-connect.spec.ts", "disconnected event should be emitted when browser is closed or server is closed")]123 public async Task DisconnectedEventShouldBeEmittedWhenBrowserIsClosedOrServerIsClosed()124 {125 var browser1 = await BrowserType.ConnectAsync(_remoteServer.WSEndpoint);126 await browser1.NewPageAsync();127 var browser2 = await BrowserType.ConnectAsync(_remoteServer.WSEndpoint);128 await browser2.NewPageAsync();129 int disconnected1 = 0;130 int disconnected2 = 0;131 browser1.Disconnected += (_, e) => disconnected1++;132 browser2.Disconnected += (_, e) => disconnected2++;133 var tsc1 = new TaskCompletionSource<object>();134 browser1.Disconnected += (_, e) => tsc1.SetResult(null);135 await browser1.CloseAsync();136 await tsc1.Task;137 Assert.AreEqual(disconnected1, 1);138 Assert.AreEqual(disconnected2, 0);139 var tsc2 = new TaskCompletionSource<object>();140 browser2.Disconnected += (_, e) => tsc2.SetResult(null);141 await browser2.CloseAsync();142 await tsc2.Task;143 Assert.AreEqual(disconnected1, 1);144 Assert.AreEqual(disconnected2, 1);145 }146 [PlaywrightTest("browsertype-connect.spec.ts", "disconnected event should have browser as argument")]147 public async Task DisconnectedEventShouldHaveBrowserAsArguments()148 {149 var browser = await BrowserType.ConnectAsync(_remoteServer.WSEndpoint);150 IBrowser disconneced = null;151 var tsc = new TaskCompletionSource<object>();152 browser.Disconnected += (_, browser) =>153 {154 disconneced = browser;155 tsc.SetResult(null);156 };157 await browser.CloseAsync();158 await tsc.Task;159 Assert.AreEqual(browser, disconneced);160 }161 [PlaywrightTest("browsertype-connect.spec.ts", "should set the browser connected state")]162 public async Task ShouldSetTheBrowserConnectedState()163 {164 var browser = await BrowserType.ConnectAsync(_remoteServer.WSEndpoint);165 Assert.AreEqual(browser.IsConnected, true);166 var tsc = new TaskCompletionSource<bool>();167 browser.Disconnected += (_, e) => tsc.SetResult(false);168 _remoteServer.Close();169 await tsc.Task;170 Assert.AreEqual(browser.IsConnected, false);171 }172 [PlaywrightTest("browsertype-connect.spec.ts", "should throw when used after isConnected returns false")]173 public async Task ShouldThrowWhenUsedAfterIsConnectedReturnsFalse()174 {175 var browser = await BrowserType.ConnectAsync(_remoteServer.WSEndpoint);176 var page = await browser.NewPageAsync();177 var tsc = new TaskCompletionSource<bool>();178 browser.Disconnected += (_, e) => tsc.SetResult(false);179 _remoteServer.Close();180 await tsc.Task;181 Assert.AreEqual(browser.IsConnected, false);182 var exception = await PlaywrightAssert.ThrowsAsync<PlaywrightException>(async () => await page.EvaluateAsync("1 + 1"));183 StringAssert.Contains("has been closed", exception.Message);184 }185 [PlaywrightTest("browsertype-connect.spec.ts", "should throw when calling waitForNavigation after disconnect")]186 public async Task ShouldThrowWhenWhenCallingWaitForNavigationAfterDisconnect()187 {188 var browser = await BrowserType.ConnectAsync(_remoteServer.WSEndpoint);189 var page = await browser.NewPageAsync();190 var tsc = new TaskCompletionSource<bool>();191 browser.Disconnected += (_, e) => tsc.SetResult(false);192 _remoteServer.Close();193 await tsc.Task;194 Assert.AreEqual(browser.IsConnected, false);195 var exception = await PlaywrightAssert.ThrowsAsync<PlaywrightException>(async () => await page.WaitForNavigationAsync());196 StringAssert.Contains("Navigation failed because page was closed", exception.Message);197 }198 [PlaywrightTest("browsertype-connect.spec.ts", "should reject navigation when browser closes")]199 public async Task ShouldRejectNavigationWhenBrowserCloses()200 {201 Server.SetRoute("/one-style.css", context =>202 {203 context.Response.Redirect("/one-style.css");204 return Task.CompletedTask;205 });206 var browser = await BrowserType.ConnectAsync(_remoteServer.WSEndpoint);207 var page = await browser.NewPageAsync();208 var PageGoto = page.GotoAsync(Server.Prefix + "/one-style.html", new PageGotoOptions { Timeout = 60000 });209 await Server.WaitForRequest("/one-style.css");210 await browser.CloseAsync();211 Assert.AreEqual(browser.IsConnected, false);212 var exception = await PlaywrightAssert.ThrowsAsync<PlaywrightException>(async () => await PageGoto);213 StringAssert.Contains("has been closed", exception.Message);214 }215 [PlaywrightTest("browsertype-connect.spec.ts", "should reject waitForSelector when browser closes")]216 public async Task ShouldRejectWaitForSelectorWhenBrowserCloses()217 {218 var browser = await BrowserType.ConnectAsync(_remoteServer.WSEndpoint);219 var page = await browser.NewPageAsync();220 var watchdog = page.WaitForSelectorAsync("div");221 await browser.CloseAsync();222 var exception = await PlaywrightAssert.ThrowsAsync<PlaywrightException>(async () => await watchdog);223 Assert.That(exception.Message, Contains.Substring("has been closed"));224 }225 [PlaywrightTest("browsertype-connect.spec.ts", "should emit close events on pages and contexts")]226 public async Task ShouldEmitCloseEventsOnPagesAndContexts()227 {228 var browser = await BrowserType.ConnectAsync(_remoteServer.WSEndpoint);229 var context = await browser.NewContextAsync();230 var tsc = new TaskCompletionSource<object>();231 context.Close += (_, e) => tsc.SetResult(null);232 var page = await context.NewPageAsync();233 bool pageClosed = false;234 page.Close += (_, e) => pageClosed = true;235 _remoteServer.Close();236 await tsc.Task;237 Assert.AreEqual(pageClosed, true);238 }239 [PlaywrightTest("browsertype-connect.spec.ts", "should terminate network waiters")]240 public async Task ShouldTerminateNetworkWaiters()241 {242 var browser = await BrowserType.ConnectAsync(_remoteServer.WSEndpoint);243 var page = await browser.NewPageAsync();244 var requestWatchdog = page.WaitForRequestAsync(Server.EmptyPage);245 var responseWatchog = page.WaitForResponseAsync(Server.EmptyPage);246 _remoteServer.Close();247 async Task CheckTaskHasException(Task task)248 {249 var exception = await PlaywrightAssert.ThrowsAsync<PlaywrightException>(async () => await task);250 StringAssert.Contains("Page closed", exception.Message);251 StringAssert.DoesNotContain("Timeout", exception.Message);252 }253 await CheckTaskHasException(requestWatchdog);254 await CheckTaskHasException(responseWatchog);255 }256 [PlaywrightTest("browsertype-connect.spec.ts", "should not throw on close after disconnect")]257 public async Task ShouldNotThrowOnCloseAfterDisconnect()258 {259 var browser = await BrowserType.ConnectAsync(_remoteServer.WSEndpoint);260 var page = await browser.NewPageAsync();261 var tcs = new TaskCompletionSource<bool>();262 browser.Disconnected += (_, e) => tcs.SetResult(true);263 _remoteServer.Close();264 await tcs.Task;265 await browser.CloseAsync();266 }267 [PlaywrightTest("browsertype-connect.spec.ts", "should not throw on context.close after disconnect")]268 public async Task ShouldNotThrowOnContextCloseAfterDisconnect()269 {270 var browser = await BrowserType.ConnectAsync(_remoteServer.WSEndpoint);271 var context = await browser.NewContextAsync();272 await context.NewPageAsync();273 var tcs = new TaskCompletionSource<bool>();274 browser.Disconnected += (_, e) => tcs.SetResult(true);275 _remoteServer.Close();276 await tcs.Task;277 await context.CloseAsync();278 }279 [PlaywrightTest("browsertype-connect.spec.ts", "should not throw on page.close after disconnect")]280 public async Task ShouldNotThrowOnPageCloseAfterDisconnect()281 {282 var browser = await BrowserType.ConnectAsync(_remoteServer.WSEndpoint);283 var context = await browser.NewContextAsync();284 var page = await context.NewPageAsync();285 var tcs = new TaskCompletionSource<bool>();286 browser.Disconnected += (_, e) => tcs.SetResult(true);287 _remoteServer.Close();288 await tcs.Task;289 await page.CloseAsync();290 }291 [PlaywrightTest("browsertype-connect.spec.ts", "should saveAs videos from remote browser")]292 public async Task ShouldSaveAsVideosFromRemoteBrowser()293 {294 using var tempDirectory = new TempDirectory();295 var videoPath = tempDirectory.Path;296 var browser = await BrowserType.ConnectAsync(_remoteServer.WSEndpoint);297 var context = await browser.NewContextAsync(new()298 {299 RecordVideoDir = videoPath,300 RecordVideoSize = new() { Height = 320, Width = 240 }301 });302 var page = await context.NewPageAsync();303 await page.EvaluateAsync("() => document.body.style.backgroundColor = 'red'");304 await Task.Delay(1000);305 await context.CloseAsync();306 var videoSavePath = tempDirectory.Path + "my-video.webm";307 await page.Video.SaveAsAsync(videoSavePath);308 Assert.That(videoSavePath, Does.Exist);309 var exception = await PlaywrightAssert.ThrowsAsync<PlaywrightException>(async () => await page.Video.PathAsync());310 StringAssert.Contains("Path is not available when connecting remotely. Use SaveAsAsync() to save a local copy", exception.Message);311 }312 [PlaywrightTest("browsertype-connect.spec.ts", "should save download")]313 public async Task ShouldSaveDownload()314 {315 Server.SetRoute("/download", context =>316 {317 context.Response.Headers["Content-Type"] = "application/octet-stream";318 context.Response.Headers["Content-Disposition"] = "attachment";319 return context.Response.WriteAsync("Hello world");320 });321 var browser = await BrowserType.ConnectAsync(_remoteServer.WSEndpoint);322 var page = await browser.NewPageAsync(new() { AcceptDownloads = true });323 await page.SetContentAsync($"<a href=\"{Server.Prefix}/download\">download</a>");324 var downloadTask = page.WaitForDownloadAsync();325 await TaskUtils.WhenAll(326 downloadTask,327 page.ClickAsync("a"));328 using var tmpDir = new TempDirectory();329 string userPath = Path.Combine(tmpDir.Path, "these", "are", "directories", "download.txt");330 var download = downloadTask.Result;331 await download.SaveAsAsync(userPath);332 Assert.True(new FileInfo(userPath).Exists);333 Assert.AreEqual("Hello world", File.ReadAllText(userPath));334 var exception = await PlaywrightAssert.ThrowsAsync<PlaywrightException>(() => download.PathAsync());335 Assert.AreEqual("Path is not available when connecting remotely. Use SaveAsAsync() to save a local copy.", exception.Message);336 await browser.CloseAsync();337 }338 [PlaywrightTest("browsertype-connect.spec.ts", "should error when saving download after deletion")]339 public async Task ShouldErrorWhenSavingDownloadAfterDeletion()340 {341 Server.SetRoute("/download", context =>342 {343 context.Response.Headers["Content-Type"] = "application/octet-stream";344 context.Response.Headers["Content-Disposition"] = "attachment";345 return context.Response.WriteAsync("Hello world");346 });347 var browser = await BrowserType.ConnectAsync(_remoteServer.WSEndpoint);348 var page = await browser.NewPageAsync(new() { AcceptDownloads = true });349 await page.SetContentAsync($"<a href=\"{Server.Prefix}/download\">download</a>");350 var downloadTask = page.WaitForDownloadAsync();351 await TaskUtils.WhenAll(352 downloadTask,353 page.ClickAsync("a"));354 using var tmpDir = new TempDirectory();355 string userPath = Path.Combine(tmpDir.Path, "download.txt");356 var download = downloadTask.Result;357 await download.DeleteAsync();358 var exception = await PlaywrightAssert.ThrowsAsync<PlaywrightException>(() => download.SaveAsAsync(userPath));359 StringAssert.Contains("Target page, context or browser has been closed", exception.Message);360 await browser.CloseAsync();361 }362 [PlaywrightTest("browsertype-connect.spec.ts", "should save har")]363 public async Task ShouldSaveHar()364 {365 using var tempDirectory = new TempDirectory();366 var harPath = tempDirectory.Path + "/test.har";367 var browser = await BrowserType.ConnectAsync(_remoteServer.WSEndpoint);368 var context = await browser.NewContextAsync(new()369 {370 RecordHarPath = harPath371 });372 var page = await context.NewPageAsync();373 await page.GotoAsync(Server.EmptyPage);374 await context.CloseAsync();375 await browser.CloseAsync();376 Assert.That(harPath, Does.Exist);377 var logString = System.IO.File.ReadAllText(harPath);378 StringAssert.Contains(Server.EmptyPage, logString);379 }380 [PlaywrightTest("browsertype-connect.spec.ts", "should record trace with sources")]381 public async Task ShouldRecordContextTraces()382 {383 using var tempDirectory = new TempDirectory();384 var tracePath = tempDirectory.Path + "/trace.zip";385 var browser = await BrowserType.ConnectAsync(_remoteServer.WSEndpoint);386 var context = await browser.NewContextAsync();387 var page = await context.NewPageAsync();388 await context.Tracing.StartAsync(new() { Sources = true });389 await page.GotoAsync(Server.EmptyPage);390 await page.SetContentAsync("<button>Click</button>");391 await page.ClickAsync("button");392 await context.Tracing.StopAsync(new TracingStopOptions { Path = tracePath });393 await browser.CloseAsync();394 Assert.That(tracePath, Does.Exist);395 ZipFile.ExtractToDirectory(tracePath, tempDirectory.Path);396 Assert.That(tempDirectory.Path + "/trace.trace", Does.Exist);397 Assert.That(tempDirectory.Path + "/trace.network", Does.Exist);398 Assert.AreEqual(1, Directory.GetFiles(Path.Join(tempDirectory.Path, "resources"), "*.txt").Length);399 }400 [PlaywrightTest("browsertype-connect.spec.ts", "should upload large file")]401 [Skip(SkipAttribute.Targets.Firefox, SkipAttribute.Targets.Webkit)]402 public async Task ShouldUploadLargeFile()403 {404 var browser = await BrowserType.ConnectAsync(_remoteServer.WSEndpoint);405 var context = await browser.NewContextAsync();406 var page = await context.NewPageAsync();407 await page.GotoAsync(Server.Prefix + "/input/fileupload.html");408 using var tmpDir = new TempDirectory();409 var filePath = Path.Combine(tmpDir.Path, "200MB");410 using (var stream = File.OpenWrite(filePath))411 {412 var str = new string('a', 4 * 1024);413 for (var i = 0; i < 50 * 1024; i++)414 {415 await stream.WriteAsync(Encoding.UTF8.GetBytes(str));416 }417 }418 var input = page.Locator("input[type=file]");419 var events = await input.EvaluateHandleAsync(@"e => {420 const events = [];421 e.addEventListener('input', () => events.push('input'));422 e.addEventListener('change', () => events.push('change'));423 return events;424 }");425 await input.SetInputFilesAsync(filePath);426 Assert.AreEqual(await input.EvaluateAsync<string>("e => e.files[0].name"), "200MB");427 Assert.AreEqual(await events.EvaluateAsync<string[]>("e => e"), new[] { "input", "change" });428 var (file0Name, file0Size) = await TaskUtils.WhenAll(429 Server.WaitForRequest("/upload", request => (request.Form.Files[0].FileName, request.Form.Files[0].Length)),430 page.ClickAsync("input[type=submit]")431 );432 Assert.AreEqual("200MB", file0Name);433 Assert.AreEqual(200 * 1024 * 1024, file0Size);434 }435 private class RemoteServer436 {437 private Process Process { get; set; }438 public string WSEndpoint { get; set; }439 internal RemoteServer(string browserName)440 {441 try442 {443 var startInfo = new ProcessStartInfo(Driver.GetExecutablePath(), $"launch-server --browser {browserName}")444 {445 UseShellExecute = false,446 RedirectStandardOutput = true,447 };448 foreach (var pair in Driver.GetEnvironmentVariables())449 {450 startInfo.EnvironmentVariables[pair.Key] = pair.Value;451 }452 Process = new()453 {454 StartInfo = startInfo,455 };456 Process.Start();457 WSEndpoint = Process.StandardOutput.ReadLine();458 if (WSEndpoint != null && !WSEndpoint.StartsWith("ws://"))459 {460 throw new PlaywrightException("Invalid web socket address: " + WSEndpoint);461 }462 }463 catch (IOException ex)464 {465 throw new PlaywrightException("Failed to launch server", ex);466 }467 }468 internal void Close()469 {470 Process.Kill(true);471 Process.WaitForExit();472 WSEndpoint = null;473 }474 }475 }476}...
Close
Using AI Code Generation
1{2 [Parallelizable(ParallelScope.Self)]3 {4 [PlaywrightTest("browser-type-connect.spec.ts", "should be able to reconnect to a disconnected browser")]5 [Test, Timeout(TestConstants.DefaultTestTimeout)]6 public async Task ShouldBeAbleToReconnectToADisconnectedBrowser()7 {8 await using var browserServer = await BrowserType.LaunchServerAsync(TestConstants.GetDefaultBrowserOptions());9 var wsEndpoint = browserServer.WebSocketEndpoint;10 var browser = await BrowserType.ConnectAsync(wsEndpoint);11 var page = await browser.NewPageAsync();12 await page.GotoAsync(TestConstants.EmptyPage);13 var originalPage = page;14 await browser.CloseAsync();15 browser = await BrowserType.ConnectAsync(wsEndpoint);16 page = await browser.NewPageAsync();17 Assert.AreNotEqual(originalPage, page);18 await page.GotoAsync(TestConstants.EmptyPage);19 await browser.CloseAsync();20 }21 }22}23{24 [Parallelizable(ParallelScope.Self)]25 {26 [PlaywrightTest("browser-type-connect.spec.ts", "should be able to reconnect to a disconnected browser")]27 [Test, Timeout(TestConstants.DefaultTestTimeout)]28 public async Task ShouldBeAbleToReconnectToADisconnectedBrowser()29 {30 await using var browserServer = await BrowserType.LaunchServerAsync(TestConstants.GetDefaultBrowserOptions());31 var wsEndpoint = browserServer.WebSocketEndpoint;32 var browser = await BrowserType.ConnectAsync(wsEndpoint);33 var page = await browser.NewPageAsync();34 await page.GotoAsync(TestConstants.EmptyPage);35 var originalPage = page;36 await browser.CloseAsync();37 browser = await BrowserType.ConnectAsync(wsEndpoint);38 page = await browser.NewPageAsync();39 Assert.AreNotEqual(originalPage, page);40 await page.GotoAsync(TestConstants.EmptyPage);41 await browser.CloseAsync();42 }43 }44}
Close
Using AI Code Generation
1{2 {3 internal BrowserTypeConnectTests(ITestOutputHelper output) : base(output)4 {5 }6 [PlaywrightTest("browsercontext-connect.spec.ts", "should be able to reconnect to a disconnected browser")]7 [Fact(Timeout = PlaywrightSharp.Playwright.DefaultTimeout)]8 public async Task ShouldBeAbleToReconnectToADisconnectedBrowser()9 {10 var browserServer = await Playwright.LaunchServerAsync(new LaunchOptions { Headless = false });11 var browserWSEndpoint = browserServer.WebSocketEndpoint;12 var browser = await Playwright.ConnectAsync(new ConnectOptions { BrowserWSEndpoint = browserWSEndpoint });13 var page = await browser.NewPageAsync();14 await page.GotoAsync(Server.EmptyPage);15 await browser.CloseAsync();16 browser = await Playwright.ConnectAsync(new ConnectOptions { BrowserWSEndpoint = browserWSEndpoint });17 page = await browser.NewPageAsync();18 await page.GotoAsync(Server.EmptyPage);19 await browser.CloseAsync();20 await browserServer.CloseAsync();21 }22 }23}24{25 {26 internal BrowserTypeConnectTests(ITestOutputHelper output) : base(output)27 {28 }29 [PlaywrightTest("browsercontext-connect.spec.ts", "should be able to reconnect to a disconnected browser")]30 [Fact(Timeout = PlaywrightSharp.Playwright.DefaultTimeout)]31 public async Task ShouldBeAbleToReconnectToADisconnectedBrowser()32 {33 var browserServer = await Playwright.LaunchServerAsync(new LaunchOptions { Headless = false });34 var browserWSEndpoint = browserServer.WebSocketEndpoint;35 var browser = await Playwright.ConnectAsync(new ConnectOptions { BrowserWSEndpoint = browserWSEndpoint });36 var page = await browser.NewPageAsync();37 await page.GotoAsync(Server.EmptyPage);38 await browser.CloseAsync();39 browser = await Playwright.ConnectAsync(new ConnectOptions { BrowserWSEndpoint = browserWSEndpoint });40 page = await browser.NewPageAsync();
Close
Using AI Code Generation
1using System;2using System.Collections.Generic;3using System.Linq;4using System.Text;5using System.Threading.Tasks;6using NUnit.Framework;7{8 [Parallelizable(ParallelScope.Self)]9 {10 public async Task Close()11 {12 var browser = await BrowserType.ConnectAsync(TestConstants.ServerUrl);13 var context = await browser.NewContextAsync();14 var page = await context.NewPageAsync();15 await page.GotoAsync(TestConstants.EmptyPage);16 Assert.AreEqual(TestConstants.EmptyPage, page.Url);17 await browser.CloseAsync();18 }19 }20}21var stackTrace = new StackTrace();22var stackFrames = stackTrace.GetFrames();23var currentFrame = stackFrames[0];24var currentMethod = currentFrame.GetMethod();25var currentClassName = currentMethod.DeclaringType.Name;26var currentMethodName = currentMethod.Name;27var path = String.Concat(currentClassName, ".", currentMethodName);28var stackTrace = new StackTrace();29var stackFrames = stackTrace.GetFrames();30var currentFrame = stackFrames[0];31var currentMethod = currentFrame.GetMethod();32var currentClassName = currentMethod.DeclaringType.Name;33var currentMethodName = currentMethod.Name;34var path = String.Concat(currentClassName, ".", currentMethodName);35var stackTrace = new StackTrace();36var stackFrames = stackTrace.GetFrames();37var currentFrame = stackFrames[0];38var currentMethod = currentFrame.GetMethod();39var currentClassName = currentMethod.DeclaringType.Name;40var currentMethodName = currentMethod.Name;41var path = String.Concat(currentClassName, ".", currentMethodName);42var stackTrace = new StackTrace();43var stackFrames = stackTrace.GetFrames();
Close
Using AI Code Generation
1using Microsoft.Playwright.Tests;2using System;3using System.Threading.Tasks;4using Xunit;5using Xunit.Abstractions;6{7 {8 internal BrowserTypeConnectTests(ITestOutputHelper output) : 9 base(output)10 {11 }12 public async Task CloseShouldThrowWhenUsedAfterDisconnecting()13 {14 var browser = await BrowserType.LaunchAsync(TestConstants.GetDefaultBrowserOptions());15 var context = await browser.NewContextAsync();16 var page = await context.NewPageAsync();17 await page.GotoAsync(TestConstants.EmptyPage);18 await browser.CloseAsync();19 var exception = await Assert.ThrowsAsync<PlaywrightSharpException>(() => browser.CloseAsync());20 StringAssert.Contains("Protocol error (Target.closeTarget): Target closed.", exception.Message);21 }22 }23}
Close
Using AI Code Generation
1{2 {3 [PlaywrightTest("browser-type-connect.spec.ts", "should close browser with beforeunload page")]4 [Fact(Timeout = PlaywrightSharp.Playwright.DefaultTimeout)]5 public async Task Close()6 {7 var browser = await BrowserType.ConnectAsync(TestConstants.WebSocketEndpoint);8 var page = await browser.NewPageAsync();9 var context = page.Context;10 var closed = new TaskCompletionSource<bool>();11 context.Closed += (_, _) => closed.TrySetResult(true);12 await page.GoToAsync(TestConstants.ServerUrl + "/beforeunload.html");13 await browser.CloseAsync();14 await closed.Task;15 }16 }17}
Close
Using AI Code Generation
1{2 {3 public void Close()4 {5 var browser = t.Result;6 browser.CloseAsync().ContinueWith(t => {7 var result = t.Result;8 });9 });10 }11 }12}13await page.CloseAsync();14await page.Context.CloseAsync();15await page.Context.CloseAsync(new CloseOptions { RunBeforeUnload = true });16await page.Context.CloseAsync(new CloseOptions { RunBeforeUnload = false });17await page.Context.CloseAsync(new CloseOptions { RunBeforeUnload = true, RunUnload = true });18await page.Context.CloseAsync(new CloseOptions { RunBeforeUnload = false, RunUnload = true });19await page.Context.CloseAsync(new CloseOptions { RunUnload = true });20await page.Context.CloseAsync(new CloseOptions { RunUnload = false });21await browser.CloseAsync();22await browser.CloseAsync(new CloseOptions { RunBeforeUnload = true });23await browser.CloseAsync(new CloseOptions { RunBeforeUnload = false });24await browser.CloseAsync(new CloseOptions { RunBeforeUnload = true, RunUnload = true });25await browser.CloseAsync(new CloseOptions { Run
LambdaTest’s Playwright tutorial will give you a broader idea about the Playwright automation framework, its unique features, and use cases with examples to exceed your understanding of Playwright testing. This tutorial will give A to Z guidance, from installing the Playwright framework to some best practices and advanced concepts.
Get 100 minutes of automation test minutes FREE!!