Best Playwright-dotnet code snippet using Microsoft.Playwright.Tests.PageClickTests.ShouldClickTheButton
PageClickTests.cs
Source:PageClickTests.cs
...31{32 public class PageClickTests : PageTestEx33 {34 [PlaywrightTest("page-click.spec.ts", "should click the button")]35 public async Task ShouldClickTheButton()36 {37 await Page.GotoAsync(Server.Prefix + "/input/button.html");38 await Page.ClickAsync("button");39 Assert.AreEqual("Clicked", await Page.EvaluateAsync<string>("result"));40 }41 [PlaywrightTest("page-click.spec.ts", "should click svg")]42 public async Task ShouldClickSvg()43 {44 await Page.SetContentAsync($@"45 <svg height=""100"" width=""100"">46 <circle onclick=""javascript:window.__CLICKED=42"" cx=""50"" cy=""50"" r=""40"" stroke=""black"" stroke-width=""3"" fill=""red""/>47 </svg>48 ");49 await Page.ClickAsync("circle");50 Assert.AreEqual(42, await Page.EvaluateAsync<int>("() => window.__CLICKED"));51 }52 [PlaywrightTest("page-click.spec.ts", "should click svg")]53 public async Task ShouldClickTheButtonIfWindowNodeIsRemoved()54 {55 await Page.GotoAsync(Server.Prefix + "/input/button.html");56 await Page.EvaluateAsync("delete window.Node");57 await Page.ClickAsync("button");58 Assert.AreEqual("Clicked", await Page.EvaluateAsync<string>("result"));59 }60 [PlaywrightTest("page-click.spec.ts", "should click on a span with an inline element inside")]61 public async Task ShouldClickOnASpanWithAnInlineElementInside()62 {63 await Page.SetContentAsync($@"64 <style>65 span::before {{66 content: 'q';67 }}68 </style>69 <span onclick='javascript:window.CLICKED=42'></span>70 ");71 await Page.ClickAsync("span");72 Assert.AreEqual(42, await Page.EvaluateAsync<int>("() => window.CLICKED"));73 }74 [PlaywrightTest("page-click.spec.ts", "should click the button after navigation")]75 public async Task ShouldClickTheButtonAfterNavigation()76 {77 await Page.GotoAsync(Server.Prefix + "/input/button.html");78 await Page.ClickAsync("button");79 await Page.GotoAsync(Server.Prefix + "/input/button.html");80 await Page.ClickAsync("button");81 Assert.AreEqual("Clicked", await Page.EvaluateAsync<string>("result"));82 }83 [PlaywrightTest("page-click.spec.ts", "should click the button after a cross origin navigation")]84 public async Task ShouldClickTheButtonAfterACrossOriginNavigation()85 {86 await Page.GotoAsync(Server.Prefix + "/input/button.html");87 await Page.ClickAsync("button");88 await Page.GotoAsync(Server.CrossProcessPrefix + "/input/button.html");89 await Page.ClickAsync("button");90 Assert.AreEqual("Clicked", await Page.EvaluateAsync<string>("result"));91 }92 [PlaywrightTest("page-click.spec.ts", "should click with disabled javascript")]93 public async Task ShouldClickWithDisabledJavascript()94 {95 await using var context = await Browser.NewContextAsync(new() { JavaScriptEnabled = false });96 var page = await context.NewPageAsync();97 await page.GotoAsync(Server.Prefix + "/wrappedlink.html");98 await TaskUtils.WhenAll(99 page.ClickAsync("a"),100 page.WaitForNavigationAsync()101 );102 Assert.AreEqual(Server.Prefix + "/wrappedlink.html#clicked", page.Url);103 }104 [PlaywrightTest("page-click.spec.ts", "should click when one of inline box children is outside of viewport")]105 public async Task ShouldClickWhenOneOfInlineBoxChildrenIsOutsideOfViewport()106 {107 await Page.SetContentAsync($@"108 <style>109 i {{110 position: absolute;111 top: -1000px;112 }}113 </style>114 <span onclick='javascript:window.CLICKED = 42;'><i>woof</i><b>doggo</b></span>115 ");116 await Page.ClickAsync("span");117 Assert.AreEqual(42, await Page.EvaluateAsync<int>("() => window.CLICKED"));118 }119 [PlaywrightTest("page-click.spec.ts", "should select the text by triple clicking")]120 public async Task ShouldSelectTheTextByTripleClicking()121 {122 await Page.GotoAsync(Server.Prefix + "/input/textarea.html");123 const string text = "This is the text that we are going to try to select. Let's see how it goes.";124 await Page.FillAsync("textarea", text);125 await Page.ClickAsync("textarea", new() { ClickCount = 3 });126 Assert.AreEqual(text, await Page.EvaluateAsync<string>(@"() => {127 const textarea = document.querySelector('textarea');128 return textarea.value.substring(textarea.selectionStart, textarea.selectionEnd);129 }"));130 }131 [PlaywrightTest("page-click.spec.ts", "should click offscreen buttons")]132 public async Task ShouldClickOffscreenButtons()133 {134 await Page.GotoAsync(Server.Prefix + "/offscreenbuttons.html");135 var messages = new List<string>();136 Page.Console += (_, e) => messages.Add(e.Text);137 for (int i = 0; i < 11; ++i)138 {139 // We might have scrolled to click a button - reset to (0, 0).140 await Page.EvaluateAsync("() => window.scrollTo(0, 0)");141 await Page.ClickAsync($"#btn{i}");142 }143 Assert.AreEqual(new List<string>144 {145 "button #0 clicked",146 "button #1 clicked",147 "button #2 clicked",148 "button #3 clicked",149 "button #4 clicked",150 "button #5 clicked",151 "button #6 clicked",152 "button #7 clicked",153 "button #8 clicked",154 "button #9 clicked",155 "button #10 clicked"156 }, messages);157 }158 [PlaywrightTest("page-click.spec.ts", "should waitFor visible when already visible")]159 public async Task ShouldWaitForVisibleWhenAlreadyVisible()160 {161 await Page.GotoAsync(Server.Prefix + "/input/button.html");162 await Page.ClickAsync("button");163 Assert.AreEqual("Clicked", await Page.EvaluateAsync<string>("result"));164 }165 [PlaywrightTest("page-click.spec.ts", "should not wait with force")]166 public async Task ShouldNotWaitWithForce()167 {168 await Page.GotoAsync(Server.Prefix + "/input/button.html");169 await Page.EvalOnSelectorAsync("button", "b => b.style.display = 'none'");170 var exception = await PlaywrightAssert.ThrowsAsync<PlaywrightException>(()171 => Page.ClickAsync("button", new() { Force = true }));172 StringAssert.Contains("Element is not visible", exception.Message);173 Assert.AreEqual("Was not clicked", await Page.EvaluateAsync<string>("result"));174 }175 [PlaywrightTest("page-click.spec.ts", "should waitFor display:none to be gone")]176 public async Task ShouldWaitForDisplayNoneToBeGone()177 {178 await Page.GotoAsync(Server.Prefix + "/input/button.html");179 await Page.EvalOnSelectorAsync("button", "b => b.style.display = 'none'");180 var clickTask = Page.ClickAsync("button", new() { Timeout = 0 });181 await GiveItAChanceToClick(Page);182 Assert.False(clickTask.IsCompleted);183 Assert.AreEqual("Was not clicked", await Page.EvaluateAsync<string>("result"));184 await Page.EvalOnSelectorAsync("button", "b => b.style.display = 'block'");185 await clickTask;186 Assert.AreEqual("Clicked", await Page.EvaluateAsync<string>("result"));187 }188 [PlaywrightTest("page-click.spec.ts", "should waitFor visibility:hidden to be gone")]189 public async Task ShouldWaitForVisibilityhiddenToBeGone()190 {191 await Page.GotoAsync(Server.Prefix + "/input/button.html");192 await Page.EvalOnSelectorAsync("button", "b => b.style.visibility = 'hidden'");193 var clickTask = Page.ClickAsync("button", new() { Timeout = 0 });194 await GiveItAChanceToClick(Page);195 Assert.False(clickTask.IsCompleted);196 Assert.AreEqual("Was not clicked", await Page.EvaluateAsync<string>("result"));197 await Page.EvalOnSelectorAsync("button", "b => b.style.visibility = 'visible'");198 await clickTask;199 Assert.AreEqual("Clicked", await Page.EvaluateAsync<string>("result"));200 }201 [PlaywrightTest("page-click.spec.ts", "should waitFor visible when parent is hidden")]202 public async Task ShouldWaitForVisibleWhenParentIsHidden()203 {204 await Page.GotoAsync(Server.Prefix + "/input/button.html");205 await Page.EvalOnSelectorAsync("button", "b => b.parentElement.style.display = 'none'");206 var clickTask = Page.ClickAsync("button", new() { Timeout = 0 });207 await GiveItAChanceToClick(Page);208 Assert.False(clickTask.IsCompleted);209 Assert.AreEqual("Was not clicked", await Page.EvaluateAsync<string>("result"));210 await Page.EvalOnSelectorAsync("button", "b => b.parentElement.style.display = 'block'");211 await clickTask;212 Assert.AreEqual("Clicked", await Page.EvaluateAsync<string>("result"));213 }214 [PlaywrightTest("page-click.spec.ts", "should click wrapped links")]215 public async Task ShouldClickWrappedLinks()216 {217 await Page.GotoAsync(Server.Prefix + "/wrappedlink.html");218 await Page.ClickAsync("a");219 Assert.True(await Page.EvaluateAsync<bool>("window.__clicked"));220 }221 [PlaywrightTest("page-click.spec.ts", "should click on checkbox input and toggle")]222 public async Task ShouldClickOnCheckboxInputAndToggle()223 {224 await Page.GotoAsync(Server.Prefix + "/input/checkbox.html");225 Assert.Null(await Page.EvaluateAsync<bool?>("result.check"));226 await Page.ClickAsync("input#agree");227 Assert.True(await Page.EvaluateAsync<bool>("result.check"));228 Assert.AreEqual(new[] {229 "mouseover",230 "mouseenter",231 "mousemove",232 "mousedown",233 "mouseup",234 "click",235 "input",236 "change"237 }, await Page.EvaluateAsync<string[]>("result.events"));238 await Page.ClickAsync("input#agree");239 Assert.False(await Page.EvaluateAsync<bool>("result.check"));240 }241 [PlaywrightTest("page-click.spec.ts", "should click on checkbox label and toggle")]242 public async Task ShouldClickOnCheckboxLabelAndToggle()243 {244 await Page.GotoAsync(Server.Prefix + "/input/checkbox.html");245 Assert.Null(await Page.EvaluateAsync("result.check"));246 await Page.ClickAsync("label[for=\"agree\"]");247 Assert.True(await Page.EvaluateAsync<bool>("result.check"));248 Assert.AreEqual(new[] {249 "click",250 "input",251 "change"252 }, await Page.EvaluateAsync<string[]>("result.events"));253 await Page.ClickAsync("label[for=\"agree\"]");254 Assert.False(await Page.EvaluateAsync<bool>("result.check"));255 }256 [PlaywrightTest("page-click.spec.ts", "should not hang with touch-enabled viewports")]257 public async Task ShouldNotHangWithTouchEnabledViewports()258 {259 await using var context = await Browser.NewContextAsync(new()260 {261 ViewportSize = Playwright.Devices["iPhone 6"].ViewportSize,262 HasTouch = Playwright.Devices["iPhone 6"].HasTouch,263 });264 var page = await context.NewPageAsync();265 await page.Mouse.DownAsync();266 await page.Mouse.MoveAsync(100, 10);267 await page.Mouse.UpAsync();268 }269 [PlaywrightTest("page-click.spec.ts", "should scroll and click the button")]270 [Ignore("Flacky")]271 public async Task ShouldScrollAndClickTheButton()272 {273 await Page.GotoAsync(Server.Prefix + "/input/scrollable.html");274 await Page.ClickAsync("#button-5");275 Assert.AreEqual("clicked", await Page.EvaluateAsync<string>("document.querySelector(\"#button-5\").textContent"));276 await Page.ClickAsync("#button-80");277 Assert.AreEqual("clicked", await Page.EvaluateAsync<string>("document.querySelector(\"#button-80\").textContent"));278 }279 [PlaywrightTest("page-click.spec.ts", "should double click the button")]280 public async Task ShouldDoubleClickTheButton()281 {282 await Page.GotoAsync(Server.Prefix + "/input/button.html");283 await Page.EvaluateAsync(@"{284 window.double = false;285 const button = document.querySelector('button');286 button.addEventListener('dblclick', event => {287 window.double = true;288 });289 }");290 var button = await Page.QuerySelectorAsync("button");291 await button.DblClickAsync();292 Assert.True(await Page.EvaluateAsync<bool>("double"));293 Assert.AreEqual("Clicked", await Page.EvaluateAsync<string>("result"));294 }295 [PlaywrightTest("page-click.spec.ts", "should click a partially obscured button")]296 public async Task ShouldClickAPartiallyObscuredButton()297 {298 await Page.GotoAsync(Server.Prefix + "/input/button.html");299 await Page.EvaluateAsync(@"{300 const button = document.querySelector('button');301 button.textContent = 'Some really long text that will go offscreen';302 button.style.position = 'absolute';303 button.style.left = '368px';304 }");305 await Page.ClickAsync("button");306 Assert.AreEqual("Clicked", await Page.EvaluateAsync<string>("result"));307 }308 [PlaywrightTest("page-click.spec.ts", "should click a rotated button")]309 public async Task ShouldClickARotatedButton()310 {311 await Page.GotoAsync(Server.Prefix + "/input/rotatedButton.html");312 await Page.ClickAsync("button");313 Assert.AreEqual("Clicked", await Page.EvaluateAsync<string>("result"));314 }315 [PlaywrightTest("page-click.spec.ts", "should fire contextmenu event on right click")]316 public async Task ShouldFireContextmenuEventOnRightClick()317 {318 await Page.GotoAsync(Server.Prefix + "/input/scrollable.html");319 await Page.ClickAsync("#button-8", new() { Button = MouseButton.Right });320 Assert.AreEqual("context menu", await Page.EvaluateAsync<string>("document.querySelector('#button-8').textContent"));321 }322 [PlaywrightTest("page-click.spec.ts", "should click links which cause navigation")]323 public async Task ShouldClickLinksWhichCauseNavigation()324 {325 await Page.SetContentAsync($"<a href=\"{Server.EmptyPage}\">empty.html</a>");326 // This await should not hang.327 await Page.ClickAsync("a");328 }329 [PlaywrightTest("page-click.spec.ts", "should click the button inside an iframe")]330 public async Task ShouldClickTheButtonInsideAnIframe()331 {332 await Page.GotoAsync(Server.EmptyPage);333 await Page.SetContentAsync("<div style=\"width:100px;height:100px\">spacer</div>");334 await FrameUtils.AttachFrameAsync(Page, "button-test", Server.Prefix + "/input/button.html");335 var frame = Page.FirstChildFrame();336 var button = await frame.QuerySelectorAsync("button");337 await button.ClickAsync();338 Assert.AreEqual("Clicked", await frame.EvaluateAsync<string>("window.result"));339 }340 [PlaywrightTest("page-click.spec.ts", "should click the button with fixed position inside an iframe")]341 [Skip(SkipAttribute.Targets.Chromium, SkipAttribute.Targets.Webkit)]342 public async Task ShouldClickTheButtonWithFixedPositionInsideAnIframe()343 {344 await Page.GotoAsync(Server.EmptyPage);345 await Page.SetViewportSizeAsync(500, 500);346 await Page.SetContentAsync("<div style=\"width:100px;height:2000px\">spacer</div>");347 await FrameUtils.AttachFrameAsync(Page, "button-test", Server.Prefix + "/input/button.html");348 var frame = Page.FirstChildFrame();349 await frame.EvalOnSelectorAsync("button", "button => button.style.setProperty('position', 'fixed')");350 await frame.ClickAsync("button");351 Assert.AreEqual("Clicked", await frame.EvaluateAsync<string>("window.result"));352 }353 [PlaywrightTest("page-click.spec.ts", "should click the button with deviceScaleFactor set")]354 public async Task ShouldClickTheButtonWithDeviceScaleFactorSet()355 {356 await using var context = await Browser.NewContextAsync(new()357 {358 ViewportSize = new()359 {360 Width = 400,361 Height = 400,362 },363 DeviceScaleFactor = 5,364 });365 var page = await context.NewPageAsync();366 Assert.AreEqual(5, await page.EvaluateAsync<int>("window.devicePixelRatio"));367 await page.SetContentAsync("<div style=\"width:100px;height:100px\">spacer</div>");368 await FrameUtils.AttachFrameAsync(page, "button-test", Server.Prefix + "/input/button.html");369 var frame = page.FirstChildFrame();370 var button = await frame.QuerySelectorAsync("button");371 await button.ClickAsync();372 Assert.AreEqual("Clicked", await frame.EvaluateAsync<string>("window.result"));373 }374 [PlaywrightTest("page-click.spec.ts", "should click the button with px border with relative point")]375 public async Task ShouldClickTheButtonWithPxBorderWithRelativePoint()376 {377 await Page.GotoAsync(Server.Prefix + "/input/button.html");378 await Page.EvalOnSelectorAsync("button", "button => button.style.borderWidth = '8px'");379 await Page.ClickAsync("button", new() { Position = new() { X = 20, Y = 10 } });380 Assert.AreEqual("Clicked", await Page.EvaluateAsync<string>("window.result"));381 // Safari reports border-relative offsetX/offsetY.382 Assert.AreEqual(TestConstants.IsWebKit ? 20 + 8 : 20, await Page.EvaluateAsync<int>("offsetX"));383 Assert.AreEqual(TestConstants.IsWebKit ? 10 + 8 : 10, await Page.EvaluateAsync<int>("offsetY"));384 }385 [PlaywrightTest("page-click.spec.ts", "should click the button with em border with offset")]386 public async Task ShouldClickTheButtonWithEmBorderWithOffset()387 {388 await Page.GotoAsync(Server.Prefix + "/input/button.html");389 await Page.EvalOnSelectorAsync("button", "button => button.style.borderWidth = '2em'");390 await Page.EvalOnSelectorAsync("button", "button => button.style.fontSize = '12px'");391 await Page.ClickAsync("button", new() { Position = new() { X = 20, Y = 10 } });392 Assert.AreEqual("Clicked", await Page.EvaluateAsync<string>("window.result"));393 // Safari reports border-relative offsetX/offsetY.394 Assert.AreEqual(TestConstants.IsWebKit ? 12 * 2 + 20 : 20, await Page.EvaluateAsync<int>("offsetX"));395 Assert.AreEqual(TestConstants.IsWebKit ? 12 * 2 + 10 : 10, await Page.EvaluateAsync<int>("offsetY"));396 }397 [PlaywrightTest("page-click.spec.ts", "should click a very large button with offset")]398 public async Task ShouldClickAVeryLargeButtonWithOffset()399 {400 await Page.GotoAsync(Server.Prefix + "/input/button.html");401 await Page.EvalOnSelectorAsync("button", "button => button.style.borderWidth = '8px'");402 await Page.EvalOnSelectorAsync("button", "button => button.style.height = button.style.width = '2000px'");403 await Page.ClickAsync("button", new() { Position = new() { X = 1900, Y = 1910 } });404 Assert.AreEqual("Clicked", await Page.EvaluateAsync<string>("window.result"));405 // Safari reports border-relative offsetX/offsetY.406 Assert.AreEqual(TestConstants.IsWebKit ? 1900 + 8 : 1900, await Page.EvaluateAsync<int>("offsetX"));407 Assert.AreEqual(TestConstants.IsWebKit ? 1910 + 8 : 1910, await Page.EvaluateAsync<int>("offsetY"));408 }409 [PlaywrightTest("page-click.spec.ts", "should click a button in scrolling container with offset")]410 public async Task ShouldClickAButtonInScrollingContainerWithOffset()411 {412 await Page.GotoAsync(Server.Prefix + "/input/button.html");413 await Page.EvalOnSelectorAsync("button", @"button => {414 const container = document.createElement('div');415 container.style.overflow = 'auto';416 container.style.width = '200px';417 container.style.height = '200px';418 button.parentElement.insertBefore(container, button);419 container.appendChild(button);420 button.style.height = '2000px';421 button.style.width = '2000px';422 button.style.borderWidth = '8px';423 }");424 await Page.ClickAsync("button", new() { Position = new() { X = 1900, Y = 1910 } });425 Assert.AreEqual("Clicked", await Page.EvaluateAsync<string>("window.result"));426 // Safari reports border-relative offsetX/offsetY.427 Assert.AreEqual(TestConstants.IsWebKit ? 1900 + 8 : 1900, await Page.EvaluateAsync<int>("offsetX"));428 Assert.AreEqual(TestConstants.IsWebKit ? 1910 + 8 : 1910, await Page.EvaluateAsync<int>("offsetY"));429 }430 [PlaywrightTest("page-click.spec.ts", "should click the button with offset with page scale")]431 [Skip(SkipAttribute.Targets.Firefox)]432 public async Task ShouldClickTheButtonWithOffsetWithPageScale()433 {434 await using var context = await Browser.NewContextAsync(new()435 {436 ViewportSize = new()437 {438 Width = 400,439 Height = 400,440 },441 IsMobile = true,442 });443 var page = await context.NewPageAsync();444 await page.GotoAsync(Server.Prefix + "/input/button.html");445 await page.EvalOnSelectorAsync("button", @"button => {446 button.style.borderWidth = '8px';447 document.body.style.margin = '0';448 }");449 await page.ClickAsync("button", new() { Position = new() { X = 20, Y = 10 } });450 Assert.AreEqual("Clicked", await page.EvaluateAsync<string>("window.result"));451 var point = BrowserName switch452 {453 "chromium" => new(27, 18),454 "webkit" => new(29, 19),455 _ => new Point(28, 18),456 };457 Assert.AreEqual(point.X, Convert.ToInt32(await page.EvaluateAsync<decimal>("pageX")));458 Assert.AreEqual(point.Y, Convert.ToInt32(await page.EvaluateAsync<decimal>("pageY")));459 }460 [PlaywrightTest("page-click.spec.ts", "should wait for stable position")]461 public async Task ShouldWaitForStablePosition()462 {463 await Page.GotoAsync(Server.Prefix + "/input/button.html");464 await Page.EvalOnSelectorAsync("button", @"button => {465 button.style.transition = 'margin 500ms linear 0s';466 button.style.marginLeft = '200px';467 button.style.borderWidth = '0';468 button.style.width = '200px';469 button.style.height = '20px';470 // Set display to 'block'- otherwise Firefox layouts with non-even471 // values on Linux.472 button.style.display = 'block';473 document.body.style.margin = '0';474 }");475 await Page.ClickAsync("button");476 Assert.AreEqual("Clicked", await Page.EvaluateAsync<string>("window.result"));477 Assert.AreEqual(300, await Page.EvaluateAsync<int>("pageX"));478 Assert.AreEqual(10, await Page.EvaluateAsync<int>("pageY"));479 }480 [PlaywrightTest("page-click.spec.ts", "should wait for becoming hit target")]481 public async Task ShouldWaitForBecomingHitTarget()482 {483 await Page.GotoAsync(Server.Prefix + "/input/button.html");484 await Page.EvalOnSelectorAsync("button", @"button => {485 button.style.borderWidth = '0';486 button.style.width = '200px';487 button.style.height = '20px';488 document.body.style.margin = '0';489 document.body.style.position = 'relative';490 const flyOver = document.createElement('div');491 flyOver.className = 'flyover';492 flyOver.style.position = 'absolute';493 flyOver.style.width = '400px';494 flyOver.style.height = '20px';495 flyOver.style.left = '-200px';496 flyOver.style.top = '0';497 flyOver.style.background = 'red';498 document.body.appendChild(flyOver);499 }");500 var clickTask = Page.ClickAsync("button");501 Assert.False(clickTask.IsCompleted);502 await Page.EvalOnSelectorAsync(".flyover", "flyOver => flyOver.style.left = '0'");503 await GiveItAChanceToClick(Page);504 Assert.False(clickTask.IsCompleted);505 await Page.EvalOnSelectorAsync(".flyover", "flyOver => flyOver.style.left = '200px'");506 await clickTask;507 Assert.AreEqual("Clicked", await Page.EvaluateAsync<string>("window.result"));508 }509 [PlaywrightTest("page-click.spec.ts", "should wait for becoming hit target with trial run")]510 public async Task ShouldWaitForBecomingHitTargetWithTrialRun()511 {512 await Page.GotoAsync(Server.Prefix + "/input/button.html");513 await Page.EvalOnSelectorAsync("button", @"button => {514 button.style.borderWidth = '0';515 button.style.width = '200px';516 button.style.height = '20px';517 document.body.style.margin = '0';518 document.body.style.position = 'relative';519 const flyOver = document.createElement('div');520 flyOver.className = 'flyover';521 flyOver.style.position = 'absolute';522 flyOver.style.width = '400px';523 flyOver.style.height = '20px';524 flyOver.style.left = '-200px';525 flyOver.style.top = '0';526 flyOver.style.background = 'red';527 document.body.appendChild(flyOver);528 }");529 var clickTask = Page.ClickAsync("button", new() { Trial = true });530 Assert.False(clickTask.IsCompleted);531 await Page.EvalOnSelectorAsync(".flyover", "flyOver => flyOver.style.left = '0'");532 await GiveItAChanceToClick(Page);533 Assert.False(clickTask.IsCompleted);534 await Page.EvalOnSelectorAsync(".flyover", "flyOver => flyOver.style.left = '200px'");535 await clickTask;536 Assert.AreEqual("Was not clicked", await Page.EvaluateAsync<string>("window.result"));537 }538 [PlaywrightTest("page-click.spec.ts", "trial run should work with short timeout")]539 public async Task TrialRunShouldWorkWithShortTimeout()540 {541 await Page.GotoAsync(Server.Prefix + "/input/button.html");542 await Page.QuerySelectorAsync("button");543 await Page.EvalOnSelectorAsync("button", @"button => button.disabled = true");544 var exception = await PlaywrightAssert.ThrowsAsync<TimeoutException>(() => Page.ClickAsync("button", new() { Trial = true, Timeout = 500 }));545 StringAssert.Contains("click action (trial run)", exception.Message);546 Assert.AreEqual("Was not clicked", await Page.EvaluateAsync<string>("window.result"));547 }548 [PlaywrightTest("page-click.spec.ts", "trial run should not click")]549 public async Task TrialRunShouldNotClick()550 {551 await Page.GotoAsync(Server.Prefix + "/input/button.html");552 await Page.ClickAsync("button", new() { Trial = true });553 Assert.AreEqual("Was not clicked", await Page.EvaluateAsync<string>("window.result"));554 }555 [PlaywrightTest("page-click.spec.ts", "trial run should not double click")]556 public async Task TrialRunShouldNotDoubleClick()557 {558 await Page.GotoAsync(Server.Prefix + "/input/button.html");559 await Page.EvaluateAsync(@"() => {560 window['double'] = false;561 const button = document.querySelector('button');562 button.addEventListener('dblclick', event => {563 window['double'] = true;564 });565 }");566 await Page.DblClickAsync("button", new() { Trial = true });567 Assert.False(await Page.EvaluateAsync<bool>("double"));568 Assert.AreEqual("Was not clicked", await Page.EvaluateAsync<string>("window.result"));569 }570 [PlaywrightTest("page-click.spec.ts", "should fail when obscured and not waiting for hit target")]571 public async Task ShouldFailWhenObscuredAndNotWaitingForHitTarget()572 {573 await Page.GotoAsync(Server.Prefix + "/input/button.html");574 var button = await Page.QuerySelectorAsync("button");575 await Page.EvalOnSelectorAsync("button", @"button => {576 document.body.style.position = 'relative';577 const blocker = document.createElement('div');578 blocker.style.position = 'absolute';579 blocker.style.width = '400px';580 blocker.style.height = '20px';581 blocker.style.left = '0';582 blocker.style.top = '0';583 document.body.appendChild(blocker);584 }");585 await button.ClickAsync(new() { Force = true });586 Assert.AreEqual("Was not clicked", await Page.EvaluateAsync<string>("window.result"));587 }588 [PlaywrightTest("page-click.spec.ts", "should wait for button to be enabled")]589 public async Task ShouldWaitForButtonToBeEnabled()590 {591 await Page.SetContentAsync("<button onclick=\"javascript: window.__CLICKED = true;\" disabled><span>Click target</span></button>");592 var clickTask = Page.ClickAsync("text=Click target");593 await GiveItAChanceToClick(Page);594 Assert.Null(await Page.EvaluateAsync<bool?>("window.__CLICKED"));595 Assert.False(clickTask.IsCompleted);596 await Page.EvaluateAsync("() => document.querySelector('button').removeAttribute('disabled')");597 await clickTask;598 Assert.True(await Page.EvaluateAsync<bool?>("window.__CLICKED"));599 }600 [PlaywrightTest("page-click.spec.ts", "should wait for input to be enabled")]601 public async Task ShouldWaitForInputToBeEnabled()602 {603 await Page.SetContentAsync("<input onclick=\"javascript: window.__CLICKED = true;\" disabled>");604 var clickTask = Page.ClickAsync("input");605 await GiveItAChanceToClick(Page);606 Assert.Null(await Page.EvaluateAsync<bool?>("window.__CLICKED"));607 Assert.False(clickTask.IsCompleted);608 await Page.EvaluateAsync("() => document.querySelector('input').removeAttribute('disabled')");609 await clickTask;610 Assert.True(await Page.EvaluateAsync<bool?>("window.__CLICKED"));611 }612 [PlaywrightTest("page-click.spec.ts", "should wait for select to be enabled")]613 public async Task ShouldWaitForSelectToBeEnabled()614 {615 await Page.SetContentAsync("<select onclick=\"javascript: window.__CLICKED = true;\" disabled><option selected>Hello</option></select>");616 var clickTask = Page.ClickAsync("select");617 await GiveItAChanceToClick(Page);618 Assert.Null(await Page.EvaluateAsync<bool?>("window.__CLICKED"));619 Assert.False(clickTask.IsCompleted);620 await Page.EvaluateAsync("() => document.querySelector('select').removeAttribute('disabled')");621 await clickTask;622 Assert.True(await Page.EvaluateAsync<bool?>("window.__CLICKED"));623 }624 [PlaywrightTest("page-click.spec.ts", "should click disabled div")]625 public async Task ShouldClickDisabledDiv()626 {627 await Page.SetContentAsync("<div onclick=\"javascript: window.__CLICKED = true;\" disabled>Click target</div>");628 await Page.ClickAsync("text=Click target");629 Assert.True(await Page.EvaluateAsync<bool?>("window.__CLICKED"));630 }631 [PlaywrightTest("page-click.spec.ts", "should climb dom for inner label with pointer-events:none")]632 public async Task ShouldClimbDomForInnerLabelWithPointerEventsNone()633 {634 await Page.SetContentAsync("<button onclick=\"javascript: window.__CLICKED = true;\"><label style=\"pointer-events:none\">Click target</label></button>");635 await Page.ClickAsync("text=Click target");636 Assert.True(await Page.EvaluateAsync<bool?>("window.__CLICKED"));637 }638 [PlaywrightTest("page-click.spec.ts", "should climb up to [role=button]")]639 public async Task ShouldClimbUpToRoleButton()640 {641 await Page.SetContentAsync("<div role=button onclick=\"javascript: window.__CLICKED = true;\"><div style=\"pointer-events:none\"><span><div>Click target</div></span></div>");642 await Page.ClickAsync("text=Click target");643 Assert.True(await Page.EvaluateAsync<bool?>("window.__CLICKED"));644 }645 [PlaywrightTest("page-click.spec.ts", "should wait for BUTTON to be clickable when it has pointer-events:none")]646 public async Task ShouldWaitForButtonToBeClickableWhenItHasPointerEventsNone()647 {648 await Page.SetContentAsync("<button onclick=\"javascript: window.__CLICKED = true;\" style=\"pointer-events:none\"><span>Click target</span></button>");649 var clickTask = Page.ClickAsync("text=Click target");650 await GiveItAChanceToClick(Page);651 Assert.Null(await Page.EvaluateAsync<bool?>("window.__CLICKED"));652 Assert.False(clickTask.IsCompleted);653 await Page.EvaluateAsync("() => document.querySelector('button').style.removeProperty('pointer-events')");654 await clickTask;655 Assert.True(await Page.EvaluateAsync<bool?>("window.__CLICKED"));656 }657 [PlaywrightTest("page-click.spec.ts", "should wait for LABEL to be clickable when it has pointer-events:none")]658 public async Task ShouldWaitForLabelToBeClickableWhenItHasPointerEventsNone()659 {660 await Page.SetContentAsync("<label onclick=\"javascript: window.__CLICKED = true;\" style=\"pointer-events:none\"><span>Click target</span></label>");661 var clickTask = Page.ClickAsync("text=Click target");662 for (int i = 0; i < 5; ++i)663 {664 Assert.Null(await Page.EvaluateAsync<bool?>("window.__CLICKED"));665 }666 Assert.False(clickTask.IsCompleted);667 await Page.EvaluateAsync("() => document.querySelector('label').style.removeProperty('pointer-events')");668 await clickTask;669 Assert.True(await Page.EvaluateAsync<bool?>("window.__CLICKED"));670 }671 [PlaywrightTest("page-click.spec.ts", "should update modifiers correctly")]672 public async Task ShouldUpdateModifiersCorrectly()673 {674 await Page.GotoAsync(Server.Prefix + "/input/button.html");675 await Page.ClickAsync("button", new() { Modifiers = new[] { KeyboardModifier.Shift } });676 Assert.True(await Page.EvaluateAsync<bool>("shiftKey"));677 await Page.ClickAsync("button", new() { Modifiers = Array.Empty<KeyboardModifier>() });678 Assert.False(await Page.EvaluateAsync<bool>("shiftKey"));679 await Page.Keyboard.DownAsync("Shift");680 await Page.ClickAsync("button", new() { Modifiers = Array.Empty<KeyboardModifier>() });681 Assert.False(await Page.EvaluateAsync<bool>("shiftKey"));682 await Page.ClickAsync("button");683 Assert.True(await Page.EvaluateAsync<bool>("shiftKey"));684 await Page.Keyboard.UpAsync("Shift");685 await Page.ClickAsync("button");686 Assert.False(await Page.EvaluateAsync<bool>("shiftKey"));687 }688 [PlaywrightTest("page-click.spec.ts", "should click an offscreen element when scroll-behavior is smooth")]689 public async Task ShouldClickAnOffscreenElementWhenScrollBehaviorIsSmooth()690 {691 await Page.SetContentAsync(@$"692 <div style=""border: 1px solid black; height: 500px; overflow: auto; width: 500px; scroll-behavior: smooth"">693 <button style=""margin-top: 2000px"" onClick=""window.clicked = true"" >hi</button>694 </div>");695 await Page.ClickAsync("button");696 Assert.True(await Page.EvaluateAsync<bool>("window.clicked"));697 }698 [PlaywrightTest("page-click.spec.ts", "should report nice error when element is detached and force-clicked")]699 public async Task ShouldReportNiceErrorWhenElementIsDetachedAndForceClicked()700 {701 await Page.GotoAsync(Server.Prefix + "/input/animating-button.html");702 await Page.EvaluateAsync("() => addButton()");703 var handle = await Page.QuerySelectorAsync("button");704 await Page.EvaluateAsync("() => stopButton(true)");705 var clickTask = handle.ClickAsync(new() { Force = true });706 var exception = await PlaywrightAssert.ThrowsAsync<PlaywrightException>(() => clickTask);707 Assert.Null(await Page.EvaluateAsync<bool?>("window.clicked"));708 StringAssert.Contains("Element is not attached to the DOM", exception.Message);709 }710 [PlaywrightTest("page-click.spec.ts", "should fail when element detaches after animation")]711 public async Task ShouldFailWhenElementDetachesAfterAnimation()712 {713 await Page.GotoAsync(Server.Prefix + "/input/animating-button.html");714 await Page.EvaluateAsync("() => addButton()");715 var handle = await Page.QuerySelectorAsync("button");716 var clickTask = handle.ClickAsync();717 await Page.EvaluateAsync("() => stopButton(true)");718 var exception = await PlaywrightAssert.ThrowsAsync<PlaywrightException>(() => clickTask);719 Assert.Null(await Page.EvaluateAsync<bool?>("window.clicked"));720 StringAssert.Contains("Element is not attached to the DOM", exception.Message);721 }722 [PlaywrightTest("page-click.spec.ts", "should retry when element detaches after animation")]723 public async Task ShouldRetryWhenElementDetachesAfterAnimation()724 {725 await Page.GotoAsync(Server.Prefix + "/input/animating-button.html");726 await Page.EvaluateAsync("() => addButton()");727 var clickTask = Page.ClickAsync("button");728 Assert.False(clickTask.IsCompleted);729 Assert.Null(await Page.EvaluateAsync<bool?>("window.clicked"));730 await Page.EvaluateAsync("() => stopButton(true)");731 await Page.EvaluateAsync("() => addButton()");732 Assert.False(clickTask.IsCompleted);733 Assert.Null(await Page.EvaluateAsync<bool?>("window.clicked"));734 await Page.EvaluateAsync("() => stopButton(true)");735 await Page.EvaluateAsync("() => addButton()");736 Assert.False(clickTask.IsCompleted);737 Assert.Null(await Page.EvaluateAsync<bool?>("window.clicked"));738 await Page.EvaluateAsync("() => stopButton(false)");739 await clickTask;740 Assert.True(await Page.EvaluateAsync<bool?>("window.clicked"));741 }742 [PlaywrightTest("page-click.spec.ts", "should retry when element is animating from outside the viewport")]743 public async Task ShouldRetryWhenElementIsAnimatingFromOutsideTheViewport()744 {745 await Page.SetContentAsync($@"746 <style>747 @keyframes move {{748 from {{ left: -300px; }}749 to {{ left: 0; }}750 }}751 button {{752 position: absolute;753 left: -300px;754 top: 0;755 bottom: 0;756 width: 200px;757 }}758 button.animated {{759 animation: 1s linear 1s move forwards;760 }}761 </style>762 <div style=""position: relative; width: 300px; height: 300px;"">763 <button onclick =""window.clicked=true""></button>764 </div>");765 var handle = await Page.QuerySelectorAsync("button");766 var clickTask = handle.ClickAsync();767 await handle.EvaluateAsync("button => button.className = 'animated'");768 await clickTask;769 Assert.True(await Page.EvaluateAsync<bool?>("window.clicked"));770 }771 [PlaywrightTest("page-click.spec.ts", "should retry when element is animating from outside the viewport with force")]772 public async Task ShouldRetryWhenElementIsAnimatingFromOutsideTheViewportWithForce()773 {774 await Page.SetContentAsync($@"775 <style>776 @keyframes move {{777 from {{ left: -300px; }}778 to {{ left: 0; }}779 }}780 button {{781 position: absolute;782 left: -300px;783 top: 0;784 bottom: 0;785 width: 200px;786 }}787 button.animated {{788 animation: 1s linear 1s move forwards;789 }}790 </style>791 <div style=""position: relative; width: 300px; height: 300px;"">792 <button onclick =""window.clicked=true""></button>793 </div>");794 var handle = await Page.QuerySelectorAsync("button");795 var clickTask = handle.ClickAsync(new() { Force = true });796 await handle.EvaluateAsync("button => button.className = 'animated'");797 var exception = await PlaywrightAssert.ThrowsAsync<PlaywrightException>(() => clickTask);798 Assert.Null(await Page.EvaluateAsync<bool?>("window.clicked"));799 StringAssert.Contains("Element is outside of the viewport", exception.Message);800 }801 [PlaywrightTest("page-click.spec.ts", "should dispatch microtasks in order")]802 public async Task ShouldDispatchMicrotasksInOrder()803 {804 await Page.SetContentAsync($@"805 <button id=button>Click me</button>806 <script>807 let mutationCount = 0;808 const observer = new MutationObserver((mutationsList, observer) => {{809 for(let mutation of mutationsList)810 ++mutationCount;811 }});812 observer.observe(document.body, {{ attributes: true, childList: true, subtree: true }});813 button.addEventListener('mousedown', () => {{814 mutationCount = 0;815 document.body.appendChild(document.createElement('div'));816 }});817 button.addEventListener('mouseup', () => {{818 window.result = mutationCount;819 }});820 </script>");821 await Page.ClickAsync("button");822 Assert.AreEqual(1, await Page.EvaluateAsync<int>("window.result"));823 }824 [PlaywrightTest("page-click.spec.ts", "should click the button when window.innerWidth is corrupted")]825 public async Task ShouldClickTheButtonWhenWindowInnerWidthIsCorrupted()826 {827 await Page.GotoAsync(Server.Prefix + "/input/button.html");828 await Page.EvaluateAsync(@"() => window.innerWith = 0");829 await Page.ClickAsync("button");830 Assert.AreEqual("Clicked", await Page.EvaluateAsync<string>("result"));831 }832 private async Task GiveItAChanceToClick(IPage page)833 {834 for (int i = 0; i < 5; i++)835 {836 await page.EvaluateAsync("() => new Promise(f => requestAnimationFrame(() => requestAnimationFrame(f)))");837 }838 }839 }...
ShouldClickTheButton
Using AI Code Generation
1var playwright = await Playwright.CreateAsync();2var browser = await playwright.Chromium.LaunchAsync(new BrowserTypeLaunchOptions3{4});5var context = await browser.NewContextAsync();6var page = await context.NewPageAsync();7await page.ClickAsync("text=Sign in");8await page.ClickAsync("text=Sign in");9await page.ClickAsync("css=[placeholder=\"Email or phone\"]");10await page.FillAsync("css=[placeholder=\"Email or phone\"]", "
ShouldClickTheButton
Using AI Code Generation
1using Microsoft.Playwright;2using System.Threading.Tasks;3{4 static async Task Main(string[] args)5 {6 using var playwright = await Playwright.CreateAsync();7 await using var browser = await playwright.Chromium.LaunchAsync();8 var page = await browser.NewPageAsync();9 await page.ClickAsync("text=Images");10 await page.ClickAsync("text=Maps");11 await page.ClickAsync("text=News");
ShouldClickTheButton
Using AI Code Generation
1using System;2using System.Collections.Generic;3using System.Text;4using System.Threading.Tasks;5using Microsoft.Playwright;6using Microsoft.Playwright.Tests;7using Xunit;8using Xunit.Abstractions;9{10 {11 public PageClickTests(ITestOutputHelper output) : base(output)12 {13 }14 [PlaywrightTest("page-click.spec.ts", "should click the button")]15 [Fact(Timeout = PlaywrightSharp.Playwright.DefaultTimeout)]16 public async Task ShouldClickTheButton()17 {18 await Page.GotoAsync(Server.Prefix + "/input/button.html");19 await Page.ClickAsync("button");20 Assert.Equal("Clicked", await Page.EvaluateAsync<string>("() => result"));21 }22 }23}24using System;25using System.Collections.Generic;26using System.Text;27using System.Threading.Tasks;28using Microsoft.Playwright;29using Microsoft.Playwright.Tests;30using Xunit;31using Xunit.Abstractions;32{33 {34 public PageClickTests(ITestOutputHelper output) : base(output)35 {36 }37 [PlaywrightTest("page-click.spec.ts", "should click the button")]38 [Fact(Timeout = PlaywrightSharp.Playwright.DefaultTimeout)]39 public async Task ShouldClickTheButton()40 {41 await Page.GotoAsync(Server.Prefix + "/input/button.html");42 await Page.ClickAsync("button");43 Assert.Equal("Clicked", await Page.EvaluateAsync<string>("() => result"));44 }45 }46}47using System;48using System.Collections.Generic;49using System.Text;50using System.Threading.Tasks;51using Microsoft.Playwright;52using Microsoft.Playwright.Tests;53using Xunit;54using Xunit.Abstractions;55{56 {57 public PageClickTests(ITestOutputHelper output) : base(output)58 {59 }60 [PlaywrightTest("page-click.spec.ts", "should click the button")]61 [Fact(Timeout = PlaywrightSharp.Playwright.DefaultTimeout)]
ShouldClickTheButton
Using AI Code Generation
1var playwright = await Playwright.CreateAsync();2var browser = await playwright.Chromium.LaunchAsync(new BrowserTypeLaunchOptions3{4});5var context = await browser.NewContextAsync();6var page = await context.NewPageAsync();7await page.ClickAsync("text=I'm Feeling Lucky");8await page.ClickAsync("css=button");9await browser.CloseAsync();10await playwright.StopAsync();11var playwright = await Playwright.CreateAsync();12var browser = await playwright.Chromium.LaunchAsync(new BrowserTypeLaunchOptions13{14});15var context = await browser.NewContextAsync();16var page = await context.NewPageAsync();17await page.ClickAsync("text=I'm Feeling Lucky");18await page.ClickAsync("css=button");19await browser.CloseAsync();20await playwright.StopAsync();21var playwright = await Playwright.CreateAsync();22var browser = await playwright.Chromium.LaunchAsync(new BrowserTypeLaunchOptions23{24});25var context = await browser.NewContextAsync();26var page = await context.NewPageAsync();27await page.ClickAsync("text=I'm Feeling Lucky");28await page.ClickAsync("css=button");29await browser.CloseAsync();30await playwright.StopAsync();31var playwright = await Playwright.CreateAsync();32var browser = await playwright.Chromium.LaunchAsync(new BrowserTypeLaunchOptions33{34});35var context = await browser.NewContextAsync();36var page = await context.NewPageAsync();37await page.ClickAsync("text=I'm Feeling Lucky");38await page.ClickAsync("css=button");39await browser.CloseAsync();40await playwright.StopAsync();41var playwright = await Playwright.CreateAsync();
ShouldClickTheButton
Using AI Code Generation
1using System;2using System.Collections.Generic;3using System.Linq;4using System.Text;5using System.Threading.Tasks;6using Microsoft.Playwright;7using Microsoft.Playwright.Tests;8using NUnit.Framework;9using NUnit.Framework.Internal;10{11 {12 [PlaywrightTest("page-click.spec.ts", "should click the button")]13 [Test, Timeout(TestConstants.DefaultTestTimeout)]14 public async Task ShouldClickTheButton()15 {16 await Page.GotoAsync(Server.Prefix + "/input/button.html");17 await Page.ClickAsync("button");18 Assert.AreEqual("Clicked", await Page.EvaluateAsync<string>("() => result"));19 }20 }21}22using System;23using System.Collections.Generic;24using System.Linq;25using System.Text;26using System.Threading.Tasks;27using Microsoft.Playwright;28using Microsoft.Playwright.Tests;29using NUnit.Framework;30using NUnit.Framework.Internal;31{32 {33 [PlaywrightTest("page-click.spec.ts", "should click the button")]34 [Test, Timeout(TestConstants.DefaultTestTimeout)]35 public async Task ShouldClickTheButton()36 {37 await Page.GotoAsync(Server.Prefix + "/input/button.html");38 await Page.ClickAsync("button");39 Assert.AreEqual("Clicked", await Page.EvaluateAsync<string>("() => result"));40 }41 }42}43using System;44using System.Collections.Generic;45using System.Linq;46using System.Text;47using System.Threading.Tasks;48using Microsoft.Playwright;49using Microsoft.Playwright.Tests;50using NUnit.Framework;51using NUnit.Framework.Internal;52{53 {54 [PlaywrightTest("page-click.spec.ts", "should click the button")]55 [Test, Timeout(TestConstants.DefaultTestTimeout)]56 public async Task ShouldClickTheButton()57 {58 await Page.GotoAsync(Server.Prefix + "/input/button.html");59 await Page.ClickAsync("button");60 Assert.AreEqual("Clicked", await Page.EvaluateAsync<string>("() => result"));61 }62 }63}
ShouldClickTheButton
Using AI Code Generation
1using Microsoft.Playwright.Tests;2var assembly = Assembly.Load("Microsoft.Playwright.Tests");3var type = assembly.GetType("Microsoft.Playwright.Tests.PageClickTests");4var method = type.GetMethod("ShouldClickTheButton");5var parameters = new object[] { };6var result = method.Invoke(null, parameters);7Console.WriteLine(result);8using Microsoft.Playwright.Tests;9var assembly = Assembly.Load("Microsoft.Playwright.Tests");10var type = assembly.GetType("Microsoft.Playwright.Tests.PageClickTests");11var method = type.GetMethod("ShouldClickTheButton");12var parameters = new object[] { };13var result = method.Invoke(null, parameters);14Console.WriteLine(result);15using Microsoft.Playwright.Tests;16var assembly = Assembly.Load("Microsoft.Playwright.Tests");17var type = assembly.GetType("Microsoft.Playwright.Tests.PageClickTests");18var method = type.GetMethod("ShouldClickTheButton");19var parameters = new object[] { };20var result = method.Invoke(null, parameters);21Console.WriteLine(result);22using Microsoft.Playwright.Tests;23var assembly = Assembly.Load("Microsoft.Playwright.Tests");24var type = assembly.GetType("Microsoft.Playwright.Tests.PageClickTests");25var method = type.GetMethod("ShouldClickTheButton");26var parameters = new object[] { };27var result = method.Invoke(null, parameters);28Console.WriteLine(result);29using Microsoft.Playwright.Tests;30var assembly = Assembly.Load("Microsoft.Playwright.Tests");31var type = assembly.GetType("Microsoft.Playwright.Tests.PageClickTests");32var method = type.GetMethod("ShouldClickTheButton");33var parameters = new object[] { };34var result = method.Invoke(null, parameters);35Console.WriteLine(result);
ShouldClickTheButton
Using AI Code Generation
1var playwright = await Playwright.CreateAsync();2var browser = await playwright.Chromium.LaunchAsync(new LaunchOptions3{4});5var context = await browser.NewContextAsync();6var page = await context.NewPageAsync();7await page.ClickAsync("text=Google Search");8await page.ClickAsync("text=Images");9await page.ClickAsync("text=Maps");10await page.ClickAsync("text=Play");11await page.ClickAsync("text=YouTube");12await page.ClickAsync("text=News");13await page.ClickAsync("text=Gmail");14await page.ClickAsync("text=Drive");15await page.ClickAsync("text=Calendar");16await page.ClickAsync("text=Translate");17await page.ClickAsync("text=Photos");18await page.ClickAsync("text=Shopping");19await page.ClickAsync("text=More");20await page.ClickAsync("text=Advertising");21await page.ClickAsync("text=Business");22await page.ClickAsync("text=How Search works");23await page.ClickAsync("text=Privacy");24await page.ClickAsync("text=Terms");25await page.ClickAsync("text=Settings");26await page.ClickAsync("text=Sign in");27await page.ClickAsync("text=Images");28await page.ClickAsync("text=Maps");29await page.ClickAsync("text=Play");30await page.ClickAsync("text=YouTube");31await page.ClickAsync("text=News");32await page.ClickAsync("text=Gmail");33await page.ClickAsync("text=Drive");34await page.ClickAsync("text=Calendar");35await page.ClickAsync("text=Translate");36await page.ClickAsync("text=Photos");37await page.ClickAsync("text=Shopping");38await page.ClickAsync("text=More");39await page.ClickAsync("text=Advertising");40await page.ClickAsync("text=Business");41await page.ClickAsync("text=How Search works");42await page.ClickAsync("text=Privacy");43await page.ClickAsync("text=Terms");44await page.ClickAsync("text=Settings");45await page.ClickAsync("text=Sign in");46await page.ClickAsync("text=Images");47await page.ClickAsync("text=Maps");48await page.ClickAsync("text=Play");49await page.ClickAsync("text=YouTube");50await page.ClickAsync("text=News");51await page.ClickAsync("text=Gmail");52await page.ClickAsync("text=Drive");53await page.ClickAsync("text=Calendar");
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!!