internal static async Task VerifyViewportAsync(IPage page, int width, int height) { Assert.Equal(width, (int)page.ViewportSize.Width); Assert.Equal(height, (int)page.ViewportSize.Height); Assert.Equal(width, await page.EvaluateAsync <int>("window.innerWidth")); Assert.Equal(height, await page.EvaluateAsync <int>("window.innerHeight")); }
public async Task ShouldHandleOopifDetach() { await _page.GoToAsync(TestConstants.ServerUrl + "/dynamic-oopif.html"); Assert.Equal(1, await CountOOPIFsASync(_browser)); Assert.Equal(2, _page.Frames.Count()); var frame = _page.Frames[1]; Assert.Equal(TestConstants.CrossProcessHttpPrefix + "/grid.html", await frame.EvaluateAsync <string>("() => '' + location.href")); var(frameDetached, _) = await TaskUtils.WhenAll( _page.WaitForEventAsync(PageEvent.FrameDetached), _page.EvaluateAsync <string>("() => document.querySelector('iframe').remove()")); Assert.Equal(frame, frameDetached.Frame); }
private async Task GiveItAChanceToResolve(IPage page) { for (int i = 0; i < 5; i++) { await page.EvaluateAsync("() => new Promise(f => requestAnimationFrame(() => requestAnimationFrame(f)))"); } }
public static async Task DetachFrameAsync(IPage page, string frameId) { await page.EvaluateAsync(@"function detachFrame(frameId) { const frame = document.getElementById(frameId); frame.remove(); }", frameId); }
internal static async Task NavigateFrameAsync(IPage page, string frameId, string url) { await page.EvaluateAsync(@"function navigateFrame(frameId, url) { const frame = document.getElementById(frameId); frame.src = url; return new Promise(x => frame.onload = x); }", frameId, url); }
public async Task InitializeAsync() { Page = await PlaywrightSharpWebLoaderFixture.HostBrowser.DefaultContext.NewPageAsync(); await Page.GoToAsync(TestConstants.ServerUrl + "/test/assets/playwrightweb.html"); await Page.EvaluateAsync( "(product, connectOptions) => setup(product, connectOptions)", TestConstants.Product.ToLower(), PlaywrightSharpWebLoaderFixture.ControlledBrowserApp.ConnectOptions); }
private async Task TestWaitingAsync(IPage page, string after) { var div = await page.QuerySelectorAsync("div"); var task = div.ScrollIntoViewIfNeededAsync(); await page.EvaluateAsync("() => new Promise(f => setTimeout(f, 1000))"); Assert.False(task.IsCompleted); await div.EvaluateAsync(after); await task; }
public async Task <string> CreateNewProcess(IPage page, bool first) { AddCurrentStateAsUndoable(); if (first) { await page.EvaluateAsync(@"window.modeling.makeProcess();"); } dynamic result = await page.EvaluateAsync <ExpandoObject>( @$ "const participant = window.elementFactory.createParticipantShape({{ type: 'bpmn:Participant' }}); const addedParticipant = window.modeling.createShape(participant, {{ x: 400, y: 100 }}, process); Object.freeze({{procId: addedParticipant.businessObject.processRef.id, participantId: addedParticipant.id}})");
public async Task SetupVariables(IPage page) { InitializeModel(); await page.EvaluateAsync(@"() =>{ const modeler = window.modeler;// (1) Get the modules window.elementFactory = modeler.get('elementFactory'); window.elementRegistry = modeler.get('elementRegistry'); window.modeling = modeler.get('modeling'); window.bpmnFactory = modeler.get('bpmnFactory'); window.commandStack = window.modeling._commandStack; window.process = elementRegistry.get('Process_1'); window.startEvent = elementRegistry.get('StartEvent_1'); }"); }
public async Task ShouldDisableTimeoutWhenItsSetTo0() { var watchdog = page.WaitForFunctionAsync( @"() => { window.__counter = (window.__counter || 0) + 1; return window.__injected; }", polling: 10, timeout: 0); await page.WaitForFunctionAsync("() => window.__counter > 10"); await page.EvaluateAsync("window.__injected = true"); await watchdog; }
public static async Task InjectExisintgToDoCard(IPage page) { var key = "todos-mithril"; dynamic value = new ExpandoObject(); value.title = CardTitle; value.completed = CardCompletedStatus; value.editing = CardEditingStatus; value.key = CardKey; var stringified = Newtonsoft.Json.JsonConvert.SerializeObject(new[] { value }); await page.EvaluateAsync($"window.localStorage.setItem('{key}','{stringified}')"); await page.ReloadAsync(); await page.ClickAsync("a[href*='completed']"); }
public async Task EvaluatePageAsync(IPage page, BotData botData) { var result = await page.EvaluateAsync <string>(Expression); if (string.IsNullOrEmpty(result)) { return; } if (IsCapture) { //botData.Captures[Output] = result; } //botData.Variables[Output] = result; }
private static Task <string> GetPermissionAsync(IPage page, string name) => page.EvaluateAsync <string>( "name => navigator.permissions.query({ name }).then(result => result.state)", name);