-
-
Couldn't load subscription status.
- Fork 1.5k
[dotnet] Add examples for BiDi W3C Browsing Context #1940
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Draft
nvborisenko
wants to merge
24
commits into
SeleniumHQ:trunk
from
nvborisenko:dotnet-bidi-browsingcontext
Draft
Changes from all commits
Commits
Show all changes
24 commits
Select commit
Hold shift + click to select a range
7d92ca5
Some tests for browsing context
nvborisenko 34a0c78
More examples
nvborisenko 2b3816b
Update BrowsingContextTest.FragmentNavigatedEvent.cs
nvborisenko d23ff62
Task completion source for events
nvborisenko a6b1e44
Add more
nvborisenko 2a8aa0b
Get tree
nvborisenko 1ba4589
Group events
nvborisenko 2e02cc2
Finish examples
nvborisenko cf93f36
Simplify browsing context
nvborisenko a108d99
Add example how to print 7.. pages
nvborisenko adda703
Simplify browsing context type
nvborisenko 12f9167
BiDi is exposed from browsing context
nvborisenko 0cd9dc3
Consistent AsBiDirectional naming
nvborisenko c3d85b9
Make it even shorter
nvborisenko 0e4bd13
Use stable selenium
nvborisenko 04704a1
Do no show that BiDi object is disposable
nvborisenko a5bf483
No sandbox to be able to print a page
nvborisenko 90aa4c1
Upgrade
nvborisenko 8e9763c
Merge remote-tracking branch 'upstream/trunk' into dotnet-bidi-browsi...
nvborisenko 6ef220a
Simplify capture element screenshot
nvborisenko 7b0b273
Merge remote-tracking branch 'upstream/trunk' into dotnet-bidi-browsi...
nvborisenko b93f3c2
Actualize to 4.30
nvborisenko 9a9bbd7
Break some of them
nvborisenko f121c9e
Simplify
nvborisenko File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
13 changes: 13 additions & 0 deletions
examples/dotnet/SeleniumDocs/BiDi/BrowsingContext/BrowsingContextTest.Activate.cs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -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(); | ||
| } | ||
| } |
40 changes: 40 additions & 0 deletions
examples/dotnet/SeleniumDocs/BiDi/BrowsingContext/BrowsingContextTest.CaptureScreenshot.cs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -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); | ||
| } | ||
| } |
24 changes: 24 additions & 0 deletions
examples/dotnet/SeleniumDocs/BiDi/BrowsingContext/BrowsingContextTest.Close.cs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -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(); | ||
| } | ||
| } |
57 changes: 57 additions & 0 deletions
examples/dotnet/SeleniumDocs/BiDi/BrowsingContext/BrowsingContextTest.Create.cs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -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); | ||
| } | ||
| } |
24 changes: 24 additions & 0 deletions
...net/SeleniumDocs/BiDi/BrowsingContext/BrowsingContextTest.Event.BrowsingContextCreated.cs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -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<BrowsingContextInfo> 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); | ||
| } | ||
| } |
25 changes: 25 additions & 0 deletions
...t/SeleniumDocs/BiDi/BrowsingContext/BrowsingContextTest.Event.BrowsingContextDestroyed.cs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -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<BrowsingContextInfo> 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); | ||
| } | ||
| } |
24 changes: 24 additions & 0 deletions
...tnet/SeleniumDocs/BiDi/BrowsingContext/BrowsingContextTest.Event.BrowsingContextLoaded.cs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -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<NavigationInfo> 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); | ||
| } | ||
| } |
24 changes: 24 additions & 0 deletions
...es/dotnet/SeleniumDocs/BiDi/BrowsingContext/BrowsingContextTest.Event.DomContentLoaded.cs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -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<NavigationInfo> 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); | ||
| } | ||
| } |
26 changes: 26 additions & 0 deletions
...s/dotnet/SeleniumDocs/BiDi/BrowsingContext/BrowsingContextTest.Event.FragmentNavigated.cs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -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<NavigationInfo> 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); | ||
| } | ||
| } |
23 changes: 23 additions & 0 deletions
...s/dotnet/SeleniumDocs/BiDi/BrowsingContext/BrowsingContextTest.Event.NavigationStarted.cs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -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<NavigationInfo> 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); | ||
| } | ||
| } |
48 changes: 48 additions & 0 deletions
examples/dotnet/SeleniumDocs/BiDi/BrowsingContext/BrowsingContextTest.Event.UserPrompt.cs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -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<UserPromptOpenedEventArgs> 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<UserPromptClosedEventArgs> 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); | ||
| } | ||
| } |
43 changes: 43 additions & 0 deletions
examples/dotnet/SeleniumDocs/BiDi/BrowsingContext/BrowsingContextTest.GetTree.cs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -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); | ||
| } | ||
| } |
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.