Skip to content

Commit 2e02cc2

Browse files
committed
Finish examples
1 parent 1ba4589 commit 2e02cc2

10 files changed

+196
-28
lines changed
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
using Microsoft.VisualStudio.TestTools.UnitTesting;
2+
using OpenQA.Selenium.BiDi;
3+
using OpenQA.Selenium.BiDi.Modules.BrowsingContext;
4+
using System.Threading.Tasks;
5+
6+
namespace SeleniumDocs.BiDi.BrowsingContext;
7+
8+
partial class BrowsingContextTest
9+
{
10+
[TestMethod]
11+
public async Task CaptureScreenshot()
12+
{
13+
var browsingContext = await driver.AsBidirectionalContextAsync();
14+
15+
var screenshot = await browsingContext.CaptureScreenshotAsync();
16+
17+
Assert.IsNotNull(screenshot);
18+
Assert.IsNotNull(screenshot.Data);
19+
Assert.IsNotNull(screenshot.AsBytes());
20+
}
21+
22+
[TestMethod]
23+
public async Task CaptureViewportScreenshot()
24+
{
25+
var browsingContext = await driver.AsBidirectionalContextAsync();
26+
27+
var screenshot = await browsingContext.CaptureScreenshotAsync(new() { Clip = new BoxClipRectangle(5, 5, 10, 10) });
28+
29+
Assert.IsNotNull(screenshot);
30+
Assert.IsNotNull(screenshot.Data);
31+
}
32+
33+
[TestMethod]
34+
public async Task CaptureElementScreenshot()
35+
{
36+
var browsingContext = await driver.AsBidirectionalContextAsync();
37+
38+
driver.Url = "https://www.selenium.dev/selenium/web/formPage.html";
39+
40+
var element = (await browsingContext.LocateNodesAsync(Locator.Css("#checky")))[0];
41+
42+
//TODO: ShareId is a type, not string
43+
var screenshot = await browsingContext.CaptureScreenshotAsync(new() { Clip = new ElementClipRectangle(new(element.SharedId)) });
44+
45+
Assert.IsNotNull(screenshot);
46+
Assert.IsNotNull(screenshot.Data);
47+
}
48+
}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
using Microsoft.VisualStudio.TestTools.UnitTesting;
2+
using OpenQA.Selenium.BiDi;
3+
using OpenQA.Selenium.BiDi.Modules.BrowsingContext;
4+
using System.Threading.Tasks;
5+
6+
namespace SeleniumDocs.BiDi.BrowsingContext;
7+
8+
partial class BrowsingContextTest
9+
{
10+
[TestMethod]
11+
public async Task CloseTab()
12+
{
13+
await using var bidi = await driver.AsBidirectionalAsync();
14+
15+
var browsingContext = await bidi.CreateBrowsingContextAsync(BrowsingContextType.Tab);
16+
17+
await browsingContext.CloseAsync();
18+
}
19+
20+
[TestMethod]
21+
public async Task CloseWindow()
22+
{
23+
await using var bidi = await driver.AsBidirectionalAsync();
24+
25+
var browsingContext = await bidi.CreateBrowsingContextAsync(BrowsingContextType.Window);
26+
27+
await browsingContext.CloseAsync();
28+
}
29+
}

examples/dotnet/SeleniumDocs/BiDi/BrowsingContext/BrowsingContextTest.CloseWindowOrTab.cs

Lines changed: 0 additions & 23 deletions
This file was deleted.
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
using Microsoft.VisualStudio.TestTools.UnitTesting;
2+
using OpenQA.Selenium;
3+
using OpenQA.Selenium.BiDi;
4+
using OpenQA.Selenium.Firefox;
5+
using System.Threading.Tasks;
6+
7+
namespace SeleniumDocs.BiDi.BrowsingContext;
8+
9+
partial class BrowsingContextTest
10+
{
11+
[TestMethod]
12+
public async Task HandleUserPrompt()
13+
{
14+
// temporary use firefox because of chrome automatically handle prompts
15+
using var driver = new FirefoxDriver(new FirefoxOptions() { UseWebSocketUrl = true });
16+
17+
var browsingContext = await driver.AsBidirectionalContextAsync();
18+
19+
driver.Url = "https://www.selenium.dev/selenium/web/alerts.html";
20+
21+
driver.FindElement(By.Id("prompt-with-default")).Click();
22+
23+
await browsingContext.HandleUserPromptAsync(new() { Accept = true, UserText = "Selenium automates browsers" });
24+
}
25+
}
Lines changed: 35 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,16 +32,46 @@ public async Task NavigateToUrlWithReadinessState()
3232
}
3333

3434
[TestMethod]
35-
public async Task Reload()
35+
public async Task NavigateBack()
3636
{
3737
var browsingContext = await driver.AsBidirectionalContextAsync();
3838

3939
await browsingContext.NavigateAsync("https://www.selenium.dev/selenium/web/bidi/logEntryAdded.html", new() { Wait = ReadinessState.Complete });
4040

41-
var info = await browsingContext.ReloadAsync();
41+
await browsingContext.NavigateBackAsync();
4242

43-
Assert.IsNotNull(info);
44-
Assert.IsNotNull(info.Navigation);
45-
StringAssert.Contains(info.Url, "/bidi/logEntryAdded.html");
43+
var url = (await browsingContext.GetTreeAsync())[0].Url;
44+
45+
Assert.AreEqual("about:blank", url);
46+
}
47+
48+
[TestMethod]
49+
public async Task NavigateForward()
50+
{
51+
var browsingContext = await driver.AsBidirectionalContextAsync();
52+
53+
await browsingContext.NavigateAsync("https://www.selenium.dev/selenium/web/bidi/logEntryAdded.html", new() { Wait = ReadinessState.Complete });
54+
55+
await browsingContext.NavigateBackAsync();
56+
57+
await browsingContext.NavigateForwardAsync();
58+
59+
var url = (await browsingContext.GetTreeAsync())[0].Url;
60+
61+
Assert.AreEqual("https://www.selenium.dev/selenium/web/bidi/logEntryAdded.html", url);
62+
}
63+
64+
[TestMethod]
65+
public async Task TraverseHistory()
66+
{
67+
var browsingContext = await driver.AsBidirectionalContextAsync();
68+
69+
await browsingContext.NavigateAsync("https://www.selenium.dev/selenium/web/bidi/logEntryAdded.html", new() { Wait = ReadinessState.Complete });
70+
71+
await browsingContext.TraverseHistoryAsync(-1);
72+
73+
var url = (await browsingContext.GetTreeAsync())[0].Url;
74+
75+
Assert.AreEqual("about:blank", url);
4676
}
4777
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
using Microsoft.VisualStudio.TestTools.UnitTesting;
2+
using OpenQA.Selenium.BiDi;
3+
using System.Threading.Tasks;
4+
5+
namespace SeleniumDocs.BiDi.BrowsingContext;
6+
7+
partial class BrowsingContextTest
8+
{
9+
[TestMethod]
10+
public async Task PrintPage()
11+
{
12+
var browsingContext = await driver.AsBidirectionalContextAsync();
13+
14+
var pdf = await browsingContext.PrintAsync(new() { PageRanges = [1, 2, new(3, 5)] });
15+
16+
Assert.IsNotNull(pdf);
17+
Assert.IsNotNull(pdf.Data);
18+
Assert.IsNotNull(pdf.ToByteArray());
19+
}
20+
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
using Microsoft.VisualStudio.TestTools.UnitTesting;
2+
using OpenQA.Selenium.BiDi;
3+
using OpenQA.Selenium.BiDi.Modules.BrowsingContext;
4+
using System.Threading.Tasks;
5+
6+
namespace SeleniumDocs.BiDi.BrowsingContext;
7+
8+
partial class BrowsingContextTest
9+
{
10+
[TestMethod]
11+
public async Task Reload()
12+
{
13+
var browsingContext = await driver.AsBidirectionalContextAsync();
14+
15+
await browsingContext.NavigateAsync("https://www.selenium.dev/selenium/web/bidi/logEntryAdded.html", new() { Wait = ReadinessState.Complete });
16+
17+
var info = await browsingContext.ReloadAsync();
18+
19+
Assert.IsNotNull(info);
20+
Assert.IsNotNull(info.Navigation);
21+
StringAssert.Contains(info.Url, "/bidi/logEntryAdded.html");
22+
}
23+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
using Microsoft.VisualStudio.TestTools.UnitTesting;
2+
using OpenQA.Selenium.BiDi;
3+
using System.Threading.Tasks;
4+
5+
namespace SeleniumDocs.BiDi.BrowsingContext;
6+
7+
partial class BrowsingContextTest
8+
{
9+
[TestMethod]
10+
public async Task SetViewport()
11+
{
12+
var browsingContext = await driver.AsBidirectionalContextAsync();
13+
14+
await browsingContext.SetViewportAsync(new() { Viewport = new(250, 300), DevicePixelRatio = 5 });
15+
}
16+
}

0 commit comments

Comments
 (0)