public async Task OOPIFShouldReportGoogleComFrame() { await using var browser = await Playwright.LaunchAsync(TestConstants.GetHeadfulOptions()); var page = await browser.DefaultContext.NewPageAsync(); await page.GoToAsync(TestConstants.EmptyPage); await page.SetRequestInterceptionAsync(true); page.Request += async(sender, e) => await e.Request.FulfillAsync( new ResponseData { Body = "{ body: 'YO, GOOGLE.COM'}" }); await page.EvaluateHandleAsync(@"() => { const frame = document.createElement('iframe'); frame.setAttribute('src', 'https://google.com/'); document.body.appendChild(frame); return new Promise(x => frame.onload = x); }"); await page.WaitForSelectorAsync("iframe[src=\"https://google.com/\"]"); string[] urls = Array.ConvertAll(page.Frames, frame => frame.Url); Array.Sort(urls); Assert.Equal(new[] { TestConstants.EmptyPage, "https://google.com/" }, urls); }
public async Task ShouldHaveDefaultUrlWhenLaunchingBrowser() { await using var browser = await Playwright.LaunchAsync(TestConstants.GetHeadfulOptions()); string[] pages = (await browser.DefaultContext.GetPagesAsync()).Select(page => page.Url).ToArray(); Assert.Equal(new[] { "about:blank" }, pages); }
public async Task ShouldOpenDevtoolsWhenDevtoolsTrueOptionIsGiven() { var headfulOptions = TestConstants.GetHeadfulOptions(); headfulOptions.Devtools = true; await using var browser = await BrowserType.LaunchAsync(headfulOptions); var context = await browser.NewContextAsync(); await Task.WhenAll( context.NewPageAsync(), browser.WaitForTargetAsync(target => target.Url.Contains("devtools://"))); }
public async Task HeadlessShouldBeAbleToReadCookiesWrittenByHeadful() { // "Too" complex for our skip attribute if ((TestConstants.IsWindows && TestConstants.IsChromium) || TestConstants.IsFirefox) { return; } using var userDataDir = new TempDirectory(); // Write a cookie in headful chrome var headfulOptions = TestConstants.GetHeadfulOptions(); headfulOptions.UserDataDir = userDataDir.Path; var headfulBrowser = await Playwright.LaunchAsync(headfulOptions); var headfulPage = await headfulBrowser.DefaultContext.NewPageAsync(); await headfulPage.GoToAsync(TestConstants.EmptyPage); await headfulPage.EvaluateAsync("() => document.cookie = 'foo=true; expires=Fri, 31 Dec 9999 23:59:59 GMT'"); await headfulBrowser.CloseAsync(); // Read the cookie from headless chrome var headlessOptions = TestConstants.GetDefaultBrowserOptions(); headlessOptions.UserDataDir = userDataDir.Path; var headlessBrowser = await Playwright.LaunchAsync(headlessOptions); var headlessPage = await headlessBrowser.DefaultContext.NewPageAsync(); await headlessPage.GoToAsync(TestConstants.EmptyPage); string cookie = await headlessPage.EvaluateAsync <string>("() => document.cookie"); await headlessBrowser.CloseAsync(); Assert.Equal("foo=true", cookie); }
public async Task ShouldReportGoogleComFrameWithHeadful() { await using var browser = await BrowserType.LaunchAsync(TestConstants.GetHeadfulOptions()); var page = await browser.NewPageAsync(); await page.GoToAsync(TestConstants.EmptyPage); await page.RouteAsync("**/*", (route, _) => route.FulfillAsync(body: "YO, GOOGLE.COM")); await page.EvaluateAsync(@"() => { const frame = document.createElement('iframe'); frame.setAttribute('src', 'https://google.com/'); document.body.appendChild(frame); return new Promise(x => frame.onload = x); }"); await page.WaitForSelectorAsync("iframe[src=\"https://google.com/\"]"); Assert.Equal(1, await CountOOPIFsASync(browser)); var urls = page.Frames.Select(f => f.Url); Assert.Equal(new[] { TestConstants.EmptyPage, "https://google.com/" }, urls.ToArray()); }
/// <inheritdoc/> public PageSelectOptionTests(ITestOutputHelper output) : base(output) { DefaultOptions = TestConstants.GetHeadfulOptions(); }