diff --git a/examples/dotnet/SeleniumDocs/BaseTest.cs b/examples/dotnet/SeleniumDocs/BaseTest.cs index 18c17c3bb3f0..e51824647a04 100644 --- a/examples/dotnet/SeleniumDocs/BaseTest.cs +++ b/examples/dotnet/SeleniumDocs/BaseTest.cs @@ -37,8 +37,12 @@ protected void StartDriver(string browserVersion = "stable") { ChromeOptions options = new ChromeOptions { - BrowserVersion = browserVersion + BrowserVersion = browserVersion, + UseWebSocketUrl = true, }; + + options.AddArgument("--no-sandbox"); + driver = new ChromeDriver(options); } diff --git a/examples/dotnet/SeleniumDocs/BiDi/BrowsingContext/BrowsingContextTest.Activate.cs b/examples/dotnet/SeleniumDocs/BiDi/BrowsingContext/BrowsingContextTest.Activate.cs new file mode 100644 index 000000000000..65fbf2742075 --- /dev/null +++ b/examples/dotnet/SeleniumDocs/BiDi/BrowsingContext/BrowsingContextTest.Activate.cs @@ -0,0 +1,13 @@ +using Microsoft.VisualStudio.TestTools.UnitTesting; +using System.Threading.Tasks; + +namespace SeleniumDocs.BiDi.BrowsingContext; + +partial class BrowsingContextTest +{ + [TestMethod] + public async Task Activate() + { + await context.ActivateAsync(); + } +} diff --git a/examples/dotnet/SeleniumDocs/BiDi/BrowsingContext/BrowsingContextTest.CaptureScreenshot.cs b/examples/dotnet/SeleniumDocs/BiDi/BrowsingContext/BrowsingContextTest.CaptureScreenshot.cs new file mode 100644 index 000000000000..590d36a8737b --- /dev/null +++ b/examples/dotnet/SeleniumDocs/BiDi/BrowsingContext/BrowsingContextTest.CaptureScreenshot.cs @@ -0,0 +1,40 @@ +using Microsoft.VisualStudio.TestTools.UnitTesting; +using OpenQA.Selenium.BiDi.Modules.BrowsingContext; +using System.Threading.Tasks; + +namespace SeleniumDocs.BiDi.BrowsingContext; + +partial class BrowsingContextTest +{ + [TestMethod] + public async Task CaptureScreenshot() + { + var screenshot = await context.CaptureScreenshotAsync(); + + Assert.IsNotNull(screenshot); + Assert.IsNotNull(screenshot.Data); + Assert.IsNotNull(screenshot.ToByteArray()); + } + + [TestMethod] + public async Task CaptureViewportScreenshot() + { + var screenshot = await context.CaptureScreenshotAsync(new() { Clip = new BoxClipRectangle(5, 5, 10, 10) }); + + Assert.IsNotNull(screenshot); + Assert.IsNotNull(screenshot.Data); + } + + [TestMethod] + public async Task CaptureElementScreenshot() + { + driver.Url = "https://www.selenium.dev/selenium/web/formPage.html"; + + var element = (await context.LocateNodesAsync(new CssLocator("#checky")))[0]; + + var screenshot = await context.CaptureScreenshotAsync(new() { Clip = new ElementClipRectangle(element) }); + + Assert.IsNotNull(screenshot); + Assert.IsNotNull(screenshot.Data); + } +} diff --git a/examples/dotnet/SeleniumDocs/BiDi/BrowsingContext/BrowsingContextTest.Close.cs b/examples/dotnet/SeleniumDocs/BiDi/BrowsingContext/BrowsingContextTest.Close.cs new file mode 100644 index 000000000000..cc048f96d044 --- /dev/null +++ b/examples/dotnet/SeleniumDocs/BiDi/BrowsingContext/BrowsingContextTest.Close.cs @@ -0,0 +1,24 @@ +using Microsoft.VisualStudio.TestTools.UnitTesting; +using OpenQA.Selenium.BiDi.Modules.BrowsingContext; +using System.Threading.Tasks; + +namespace SeleniumDocs.BiDi.BrowsingContext; + +partial class BrowsingContextTest +{ + [TestMethod] + public async Task CloseTab() + { + var context = await bidi.BrowsingContext.CreateAsync(ContextType.Tab); + + await context.CloseAsync(); + } + + [TestMethod] + public async Task CloseWindow() + { + var context = await bidi.BrowsingContext.CreateAsync(ContextType.Window); + + await context.CloseAsync(); + } +} diff --git a/examples/dotnet/SeleniumDocs/BiDi/BrowsingContext/BrowsingContextTest.Create.cs b/examples/dotnet/SeleniumDocs/BiDi/BrowsingContext/BrowsingContextTest.Create.cs new file mode 100644 index 000000000000..cff30acced7b --- /dev/null +++ b/examples/dotnet/SeleniumDocs/BiDi/BrowsingContext/BrowsingContextTest.Create.cs @@ -0,0 +1,57 @@ +using Microsoft.VisualStudio.TestTools.UnitTesting; +using OpenQA.Selenium.BiDi; +using OpenQA.Selenium.BiDi.Modules.BrowsingContext; +using System.Threading.Tasks; + +namespace SeleniumDocs.BiDi.BrowsingContext; + +partial class BrowsingContextTest +{ + [TestMethod] + public async Task OpenNewTab() + { + var bidi = await driver.AsBiDiAsync(); + + var context = await bidi.BrowsingContext.CreateAsync(ContextType.Tab); + + Assert.IsNotNull(context); + } + + [TestMethod] + public async Task OpenNewWindow() + { + var bidi = await driver.AsBiDiAsync(); + + var context = await bidi.BrowsingContext.CreateAsync(ContextType.Window); + + Assert.IsNotNull(context); + } + + [TestMethod] + public async Task OpenTabWithReferenceBrowsingContext() + { + var context1 = context; + + var context2 = await context1.BiDi.BrowsingContext.CreateAsync(ContextType.Tab, new() { ReferenceContext = context1 }); + + Assert.IsNotNull(context2); + } + + [TestMethod] + public async Task OpenWindowWithReferenceBrowsingContext() + { + var context1 = context; + + var context2 = await context1.BiDi.BrowsingContext.CreateAsync(ContextType.Window, new() { ReferenceContext = context1 }); + + Assert.IsNotNull(context2); + } + + [TestMethod] + public async Task UseExistingWindowHandle() + { + var context = (await bidi.BrowsingContext.GetTreeAsync())[0].Context; + + Assert.IsNotNull(context); + } +} diff --git a/examples/dotnet/SeleniumDocs/BiDi/BrowsingContext/BrowsingContextTest.Event.BrowsingContextCreated.cs b/examples/dotnet/SeleniumDocs/BiDi/BrowsingContext/BrowsingContextTest.Event.BrowsingContextCreated.cs new file mode 100644 index 000000000000..94f58ecba264 --- /dev/null +++ b/examples/dotnet/SeleniumDocs/BiDi/BrowsingContext/BrowsingContextTest.Event.BrowsingContextCreated.cs @@ -0,0 +1,24 @@ +using Microsoft.VisualStudio.TestTools.UnitTesting; +using OpenQA.Selenium.BiDi.Modules.BrowsingContext; +using System; +using System.Threading.Tasks; + +namespace SeleniumDocs.BiDi.BrowsingContext; + +partial class BrowsingContextTest +{ + [TestMethod] + public async Task BrowsingContextCreatedEvent() + { + TaskCompletionSource tcs = new(); + + await bidi.BrowsingContext.OnContextCreatedAsync(tcs.SetResult); + + driver.SwitchTo().NewWindow(OpenQA.Selenium.WindowType.Window); + + var info = await tcs.Task.WaitAsync(TimeSpan.FromSeconds(5)); + + Assert.IsNotNull(info); + Console.WriteLine(info); + } +} diff --git a/examples/dotnet/SeleniumDocs/BiDi/BrowsingContext/BrowsingContextTest.Event.BrowsingContextDestroyed.cs b/examples/dotnet/SeleniumDocs/BiDi/BrowsingContext/BrowsingContextTest.Event.BrowsingContextDestroyed.cs new file mode 100644 index 000000000000..f74d3f1e555e --- /dev/null +++ b/examples/dotnet/SeleniumDocs/BiDi/BrowsingContext/BrowsingContextTest.Event.BrowsingContextDestroyed.cs @@ -0,0 +1,25 @@ +using Microsoft.VisualStudio.TestTools.UnitTesting; +using OpenQA.Selenium.BiDi.Modules.BrowsingContext; +using System; +using System.Threading.Tasks; + +namespace SeleniumDocs.BiDi.BrowsingContext; + +partial class BrowsingContextTest +{ + [TestMethod] + public async Task BrowsingContextDestroyedEvent() + { + TaskCompletionSource tcs = new(); + + await bidi.BrowsingContext.OnContextDestroyedAsync(tcs.SetResult); + + await context.CloseAsync(); + + var contextInfo = await tcs.Task.WaitAsync(TimeSpan.FromSeconds(5)); + + Assert.IsNotNull(contextInfo); + Assert.AreEqual(context, contextInfo.Context); + Console.WriteLine(contextInfo); + } +} diff --git a/examples/dotnet/SeleniumDocs/BiDi/BrowsingContext/BrowsingContextTest.Event.BrowsingContextLoaded.cs b/examples/dotnet/SeleniumDocs/BiDi/BrowsingContext/BrowsingContextTest.Event.BrowsingContextLoaded.cs new file mode 100644 index 000000000000..fb5c12c3f43f --- /dev/null +++ b/examples/dotnet/SeleniumDocs/BiDi/BrowsingContext/BrowsingContextTest.Event.BrowsingContextLoaded.cs @@ -0,0 +1,24 @@ +using Microsoft.VisualStudio.TestTools.UnitTesting; +using OpenQA.Selenium.BiDi.Modules.BrowsingContext; +using System; +using System.Threading.Tasks; + +namespace SeleniumDocs.BiDi.BrowsingContext; + +partial class BrowsingContextTest +{ + [TestMethod] + public async Task BrowsingContextLoadedEvent() + { + TaskCompletionSource tcs = new(); + + await context.OnLoadAsync(tcs.SetResult); + + await context.NavigateAsync("https://www.selenium.dev/selenium/web/bidi/logEntryAdded.html", new() { Wait = ReadinessState.Complete }); + + var navigationInfo = await tcs.Task.WaitAsync(TimeSpan.FromSeconds(5)); + + Assert.IsNotNull(navigationInfo); + Console.WriteLine(navigationInfo); + } +} diff --git a/examples/dotnet/SeleniumDocs/BiDi/BrowsingContext/BrowsingContextTest.Event.DomContentLoaded.cs b/examples/dotnet/SeleniumDocs/BiDi/BrowsingContext/BrowsingContextTest.Event.DomContentLoaded.cs new file mode 100644 index 000000000000..8745016d758e --- /dev/null +++ b/examples/dotnet/SeleniumDocs/BiDi/BrowsingContext/BrowsingContextTest.Event.DomContentLoaded.cs @@ -0,0 +1,24 @@ +using Microsoft.VisualStudio.TestTools.UnitTesting; +using OpenQA.Selenium.BiDi.Modules.BrowsingContext; +using System; +using System.Threading.Tasks; + +namespace SeleniumDocs.BiDi.BrowsingContext; + +partial class BrowsingContextTest +{ + [TestMethod] + public async Task DomContentLoadedEvent() + { + TaskCompletionSource tcs = new(); + + await context.OnDomContentLoadedAsync(tcs.SetResult); + + await context.NavigateAsync("https://www.selenium.dev/selenium/web/bidi/logEntryAdded.html", new() { Wait = ReadinessState.Complete }); + + var navigationInfo = await tcs.Task.WaitAsync(TimeSpan.FromSeconds(5)); + + Assert.IsNotNull(navigationInfo); + Console.WriteLine(navigationInfo); + } +} diff --git a/examples/dotnet/SeleniumDocs/BiDi/BrowsingContext/BrowsingContextTest.Event.FragmentNavigated.cs b/examples/dotnet/SeleniumDocs/BiDi/BrowsingContext/BrowsingContextTest.Event.FragmentNavigated.cs new file mode 100644 index 000000000000..0c5f080c1ed3 --- /dev/null +++ b/examples/dotnet/SeleniumDocs/BiDi/BrowsingContext/BrowsingContextTest.Event.FragmentNavigated.cs @@ -0,0 +1,26 @@ +using Microsoft.VisualStudio.TestTools.UnitTesting; +using OpenQA.Selenium.BiDi.Modules.BrowsingContext; +using System; +using System.Threading.Tasks; + +namespace SeleniumDocs.BiDi.BrowsingContext; + +partial class BrowsingContextTest +{ + [TestMethod] + public async Task FragmentNavigatedEvent() + { + await context.NavigateAsync("https://www.selenium.dev/selenium/web/linked_image.html", new() { Wait = ReadinessState.Complete }); + + TaskCompletionSource tcs = new(); + + await context.OnFragmentNavigatedAsync(tcs.SetResult); + + await context.NavigateAsync("https://www.selenium.dev/selenium/web/linked_image.html#linkToAnchorOnThisPage", new() { Wait = ReadinessState.Complete }); + + var navigationInfo = await tcs.Task.WaitAsync(TimeSpan.FromSeconds(5)); + + Assert.IsNotNull(navigationInfo); + Console.WriteLine(navigationInfo); + } +} diff --git a/examples/dotnet/SeleniumDocs/BiDi/BrowsingContext/BrowsingContextTest.Event.NavigationStarted.cs b/examples/dotnet/SeleniumDocs/BiDi/BrowsingContext/BrowsingContextTest.Event.NavigationStarted.cs new file mode 100644 index 000000000000..e8d2d5ccc160 --- /dev/null +++ b/examples/dotnet/SeleniumDocs/BiDi/BrowsingContext/BrowsingContextTest.Event.NavigationStarted.cs @@ -0,0 +1,23 @@ +using Microsoft.VisualStudio.TestTools.UnitTesting; +using OpenQA.Selenium.BiDi.Modules.BrowsingContext; +using System; +using System.Threading.Tasks; + +namespace SeleniumDocs.BiDi.BrowsingContext; + +partial class BrowsingContextTest +{ + [TestMethod] + public async Task NavigationStartedEvent() + { + TaskCompletionSource tcs = new(); + + await context.OnNavigationStartedAsync(tcs.SetResult); + + await context.NavigateAsync("https://www.selenium.dev/selenium/web/bidi/logEntryAdded.html", new() { Wait = ReadinessState.Complete }); + + var info = await tcs.Task.WaitAsync(TimeSpan.FromSeconds(5)); + + Assert.IsNotNull(info); + } +} diff --git a/examples/dotnet/SeleniumDocs/BiDi/BrowsingContext/BrowsingContextTest.Event.UserPrompt.cs b/examples/dotnet/SeleniumDocs/BiDi/BrowsingContext/BrowsingContextTest.Event.UserPrompt.cs new file mode 100644 index 000000000000..0b6415ffa368 --- /dev/null +++ b/examples/dotnet/SeleniumDocs/BiDi/BrowsingContext/BrowsingContextTest.Event.UserPrompt.cs @@ -0,0 +1,48 @@ +using Microsoft.VisualStudio.TestTools.UnitTesting; +using OpenQA.Selenium; +using OpenQA.Selenium.BiDi.Modules.BrowsingContext; +using System; +using System.Threading.Tasks; + +namespace SeleniumDocs.BiDi.BrowsingContext; + +partial class BrowsingContextTest +{ + [TestMethod] + public async Task UserPromptOpenedEvent() + { + TaskCompletionSource tcs = new(); + + await context.NavigateAsync("https://www.selenium.dev/selenium/web/alerts.html", new() { Wait = ReadinessState.Complete }); + + //TODO; THhis event can be a part of context + await bidi.BrowsingContext.OnUserPromptOpenedAsync(tcs.SetResult); + + driver.FindElement(By.Id("prompt")).Click(); + + var userPromptOpenedEventArgs = await tcs.Task.WaitAsync(TimeSpan.FromSeconds(5)); + + Assert.IsNotNull(userPromptOpenedEventArgs); + Console.WriteLine(userPromptOpenedEventArgs); + } + + [TestMethod] + public async Task UserPromptClosedEvent() + { + TaskCompletionSource tcs = new(); + + await context.NavigateAsync("https://www.selenium.dev/selenium/web/alerts.html", new() { Wait = ReadinessState.Complete }); + + //TODO; THhis event can be a part of context + await bidi.BrowsingContext.OnUserPromptClosedAsync(tcs.SetResult); + + driver.FindElement(By.Id("prompt")).Click(); + + //await context.HandleUserPromptAsync(); + + var userPromptClosedEventArgs = await tcs.Task.WaitAsync(TimeSpan.FromSeconds(5)); + + Assert.IsNotNull(userPromptClosedEventArgs); + Console.WriteLine(userPromptClosedEventArgs); + } +} diff --git a/examples/dotnet/SeleniumDocs/BiDi/BrowsingContext/BrowsingContextTest.GetTree.cs b/examples/dotnet/SeleniumDocs/BiDi/BrowsingContext/BrowsingContextTest.GetTree.cs new file mode 100644 index 000000000000..7eb40ec9f2e2 --- /dev/null +++ b/examples/dotnet/SeleniumDocs/BiDi/BrowsingContext/BrowsingContextTest.GetTree.cs @@ -0,0 +1,43 @@ +using Microsoft.VisualStudio.TestTools.UnitTesting; +using OpenQA.Selenium.BiDi; +using OpenQA.Selenium.BiDi.Modules.BrowsingContext; +using System.Threading.Tasks; + +namespace SeleniumDocs.BiDi.BrowsingContext; + +partial class BrowsingContextTest +{ + [TestMethod] + public async Task GetBrowsingContextTree() + { + await context.NavigateAsync("https://www.selenium.dev/selenium/web/iframes.html", new() { Wait = ReadinessState.Complete }); + + var contexts = await context.GetTreeAsync(); + + Assert.AreEqual(1, contexts.Count); + Assert.IsNotNull(contexts[0].Children); + Assert.IsTrue(contexts[0].Children.Count >= 1, "Context should contain iframes as children"); + } + + [TestMethod] + public async Task GetBrowsingContextTreeWithDepth() + { + await context.NavigateAsync("https://www.selenium.dev/selenium/web/iframes.html", new() { Wait = ReadinessState.Complete }); + + var contexts = await context.GetTreeAsync(new() { MaxDepth = 0 }); + + Assert.AreEqual(1, contexts.Count); + Assert.IsNull(contexts[0].Children, "Context should not contain iframes as children since depth is 0"); + } + + [TestMethod] + public async Task GetAllTopLevelBrowingContexts() + { + var window = await bidi.BrowsingContext.CreateAsync(ContextType.Window); + + var contexts = await bidi.BrowsingContext.GetTreeAsync(); + + Assert.AreEqual(2, contexts.Count); + Assert.AreEqual(contexts[1].Context, window); + } +} diff --git a/examples/dotnet/SeleniumDocs/BiDi/BrowsingContext/BrowsingContextTest.HandleUserPrompt.cs b/examples/dotnet/SeleniumDocs/BiDi/BrowsingContext/BrowsingContextTest.HandleUserPrompt.cs new file mode 100644 index 000000000000..516918cb90f5 --- /dev/null +++ b/examples/dotnet/SeleniumDocs/BiDi/BrowsingContext/BrowsingContextTest.HandleUserPrompt.cs @@ -0,0 +1,27 @@ +using Microsoft.VisualStudio.TestTools.UnitTesting; +using OpenQA.Selenium; +using OpenQA.Selenium.BiDi; +using OpenQA.Selenium.Firefox; +using System.Threading.Tasks; + +namespace SeleniumDocs.BiDi.BrowsingContext; + +partial class BrowsingContextTest +{ + [TestMethod] + public async Task HandleUserPrompt() + { + // temporary use firefox because of chrome automatically handle prompts + using var driver = new FirefoxDriver(new FirefoxOptions() { UseWebSocketUrl = true }); + + var bidi = await driver.AsBiDiAsync(); + + var context = (await bidi.BrowsingContext.GetTreeAsync())[0].Context; + + driver.Url = "https://www.selenium.dev/selenium/web/alerts.html"; + + driver.FindElement(By.Id("prompt-with-default")).Click(); + + await context.HandleUserPromptAsync(new() { Accept = true, UserText = "Selenium automates browsers" }); + } +} diff --git a/examples/dotnet/SeleniumDocs/BiDi/BrowsingContext/BrowsingContextTest.Navigate.cs b/examples/dotnet/SeleniumDocs/BiDi/BrowsingContext/BrowsingContextTest.Navigate.cs new file mode 100644 index 000000000000..c00b18b0839c --- /dev/null +++ b/examples/dotnet/SeleniumDocs/BiDi/BrowsingContext/BrowsingContextTest.Navigate.cs @@ -0,0 +1,66 @@ +using Microsoft.VisualStudio.TestTools.UnitTesting; +using OpenQA.Selenium.BiDi.Modules.BrowsingContext; +using System.Threading.Tasks; + +namespace SeleniumDocs.BiDi.BrowsingContext; + +partial class BrowsingContextTest +{ + [TestMethod] + public async Task NavigateToUrl() + { + var info = await context.NavigateAsync("https://www.selenium.dev/selenium/web/bidi/logEntryAdded.html"); + + Assert.IsNotNull(info); + Assert.IsNotNull(info.Navigation); + StringAssert.Contains(info.Url, "/bidi/logEntryAdded.html"); + } + + [TestMethod] + public async Task NavigateToUrlWithReadinessState() + { + var info = await context.NavigateAsync("https://www.selenium.dev/selenium/web/bidi/logEntryAdded.html", new() { Wait = ReadinessState.Complete }); + + Assert.IsNotNull(info); + Assert.IsNotNull(info.Navigation); + StringAssert.Contains(info.Url, "/bidi/logEntryAdded.html"); + } + + [TestMethod] + public async Task NavigateBack() + { + await context.NavigateAsync("https://www.selenium.dev/selenium/web/bidi/logEntryAdded.html", new() { Wait = ReadinessState.Complete }); + + await context.NavigateBackAsync(); + + var url = (await context.GetTreeAsync())[0].Url; + + Assert.AreEqual("about:blank", url); + } + + [TestMethod] + public async Task NavigateForward() + { + await context.NavigateAsync("https://www.selenium.dev/selenium/web/bidi/logEntryAdded.html", new() { Wait = ReadinessState.Complete }); + + await context.NavigateBackAsync(); + + await context.NavigateForwardAsync(); + + var url = (await context.GetTreeAsync())[0].Url; + + Assert.AreEqual("https://www.selenium.dev/selenium/web/bidi/logEntryAdded.html", url); + } + + [TestMethod] + public async Task TraverseHistory() + { + await context.NavigateAsync("https://www.selenium.dev/selenium/web/bidi/logEntryAdded.html", new() { Wait = ReadinessState.Complete }); + + await context.TraverseHistoryAsync(-1); + + var url = (await context.GetTreeAsync())[0].Url; + + Assert.AreEqual("about:blank", url); + } +} diff --git a/examples/dotnet/SeleniumDocs/BiDi/BrowsingContext/BrowsingContextTest.Print.cs b/examples/dotnet/SeleniumDocs/BiDi/BrowsingContext/BrowsingContextTest.Print.cs new file mode 100644 index 000000000000..07056fd63cec --- /dev/null +++ b/examples/dotnet/SeleniumDocs/BiDi/BrowsingContext/BrowsingContextTest.Print.cs @@ -0,0 +1,17 @@ +using Microsoft.VisualStudio.TestTools.UnitTesting; +using System.Threading.Tasks; + +namespace SeleniumDocs.BiDi.BrowsingContext; + +partial class BrowsingContextTest +{ + [TestMethod] + public async Task PrintPage() + { + var pdf = await context.PrintAsync(new() { PageRanges = [1, 2, 3..5, new(3, 5), 7..] }); + + Assert.IsNotNull(pdf); + Assert.IsNotNull(pdf.Data); + Assert.IsNotNull(pdf.ToByteArray()); + } +} diff --git a/examples/dotnet/SeleniumDocs/BiDi/BrowsingContext/BrowsingContextTest.Reload.cs b/examples/dotnet/SeleniumDocs/BiDi/BrowsingContext/BrowsingContextTest.Reload.cs new file mode 100644 index 000000000000..963ce3f34212 --- /dev/null +++ b/examples/dotnet/SeleniumDocs/BiDi/BrowsingContext/BrowsingContextTest.Reload.cs @@ -0,0 +1,20 @@ +using Microsoft.VisualStudio.TestTools.UnitTesting; +using OpenQA.Selenium.BiDi.Modules.BrowsingContext; +using System.Threading.Tasks; + +namespace SeleniumDocs.BiDi.BrowsingContext; + +partial class BrowsingContextTest +{ + [TestMethod] + public async Task Reload() + { + await context.NavigateAsync("https://www.selenium.dev/selenium/web/bidi/logEntryAdded.html", new() { Wait = ReadinessState.Complete }); + + var info = await context.ReloadAsync(); + + Assert.IsNotNull(info); + Assert.IsNotNull(info.Navigation); + StringAssert.Contains(info.Url, "/bidi/logEntryAdded.html"); + } +} diff --git a/examples/dotnet/SeleniumDocs/BiDi/BrowsingContext/BrowsingContextTest.SetViewport.cs b/examples/dotnet/SeleniumDocs/BiDi/BrowsingContext/BrowsingContextTest.SetViewport.cs new file mode 100644 index 000000000000..9bba6128cc3d --- /dev/null +++ b/examples/dotnet/SeleniumDocs/BiDi/BrowsingContext/BrowsingContextTest.SetViewport.cs @@ -0,0 +1,13 @@ +using Microsoft.VisualStudio.TestTools.UnitTesting; +using System.Threading.Tasks; + +namespace SeleniumDocs.BiDi.BrowsingContext; + +partial class BrowsingContextTest +{ + [TestMethod] + public async Task SetViewport() + { + await context.SetViewportAsync(new() { Viewport = new(Width: 250, Height: 300), DevicePixelRatio = 5 }); + } +} diff --git a/examples/dotnet/SeleniumDocs/BiDi/BrowsingContext/BrowsingContextTest.cs b/examples/dotnet/SeleniumDocs/BiDi/BrowsingContext/BrowsingContextTest.cs new file mode 100644 index 000000000000..530ea1ff27cb --- /dev/null +++ b/examples/dotnet/SeleniumDocs/BiDi/BrowsingContext/BrowsingContextTest.cs @@ -0,0 +1,21 @@ +using Microsoft.VisualStudio.TestTools.UnitTesting; +using OpenQA.Selenium.BiDi; +using System.Threading.Tasks; + +namespace SeleniumDocs.BiDi.BrowsingContext; + +[TestClass] +public partial class BrowsingContextTest : BaseChromeTest +{ + private OpenQA.Selenium.BiDi.BiDi bidi; + + private OpenQA.Selenium.BiDi.Modules.BrowsingContext.BrowsingContext context; + + [TestInitialize] + public async Task InitializeBidi() + { + bidi = await driver.AsBiDiAsync(); + + context = (await bidi.BrowsingContext.GetTreeAsync())[0].Context; + } +} diff --git a/examples/dotnet/SeleniumDocs/SeleniumDocs.csproj b/examples/dotnet/SeleniumDocs/SeleniumDocs.csproj index 264303d3d127..6bdbfb77b2ec 100644 --- a/examples/dotnet/SeleniumDocs/SeleniumDocs.csproj +++ b/examples/dotnet/SeleniumDocs/SeleniumDocs.csproj @@ -10,8 +10,8 @@ - - + +