diff --git a/dotnet/paket.dependencies b/dotnet/paket.dependencies
index 9ca39be0e46dd..d1f2a529ad80b 100644
--- a/dotnet/paket.dependencies
+++ b/dotnet/paket.dependencies
@@ -11,6 +11,7 @@ nuget Microsoft.Extensions.DependencyInjection 3.1.9
nuget Moq 4.20.72
nuget NETStandard.Library 2.0.3
nuget NUnit 4.6.0
+nuget NUnit.Analyzers 4.13.0
nuget NUnit3TestAdapter 6.2.0
nuget Microsoft.Testing.Platform 2.1.0
nuget Microsoft.Testing.Extensions.VSTestBridge 2.1.0
diff --git a/dotnet/paket.lock b/dotnet/paket.lock
index 12315ec498072..0c266e8f10c5e 100644
--- a/dotnet/paket.lock
+++ b/dotnet/paket.lock
@@ -51,6 +51,7 @@ NUGET
NUnit (4.6)
System.Threading.Tasks.Extensions (>= 4.5.4) - restriction: || (== net462) (&& (== net8.0) (>= net462)) (&& (== netstandard2.0) (>= net462))
System.ValueTuple (>= 4.4) - restriction: || (== net462) (&& (== net8.0) (>= net462)) (&& (== netstandard2.0) (>= net462))
+ NUnit.Analyzers (4.13)
NUnit3TestAdapter (6.2)
Microsoft.Extensions.DependencyModel (>= 8.0.2) - restriction: || (&& (== net462) (>= net8.0)) (== net8.0) (&& (== netstandard2.0) (>= net8.0))
Microsoft.Testing.Extensions.VSTestBridge (>= 2.1) - restriction: || (== net462) (== net8.0) (&& (== netstandard2.0) (>= net462)) (&& (== netstandard2.0) (>= net8.0))
diff --git a/dotnet/paket.nuget.bzl b/dotnet/paket.nuget.bzl
index 2d3a61f36c0b5..7bf144f100579 100644
--- a/dotnet/paket.nuget.bzl
+++ b/dotnet/paket.nuget.bzl
@@ -28,6 +28,7 @@ def nuget():
{"name": "Moq", "id": "Moq", "version": "4.20.72", "sha512": "sha512-HeLdAKzFe2G4fUg+tUa1WRf/Mye9zbkiv57jHRSb5IVi7GXVPgWbbEaUP8SaOpt43JJFRlWY9N5Yro32/tgRpQ==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["Castle.Core"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["Castle.Core", "System.Threading.Tasks.Extensions"], "net462": ["Castle.Core", "System.Threading.Tasks.Extensions"], "net47": ["Castle.Core", "System.Threading.Tasks.Extensions"], "net471": ["Castle.Core", "System.Threading.Tasks.Extensions"], "net472": ["Castle.Core", "System.Threading.Tasks.Extensions"], "net48": ["Castle.Core", "System.Threading.Tasks.Extensions"], "net5.0": ["Castle.Core"], "net6.0": ["Castle.Core"], "net7.0": ["Castle.Core"], "net8.0": ["Castle.Core"], "net9.0": ["Castle.Core"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["Castle.Core", "System.Threading.Tasks.Extensions"], "netcoreapp2.1": ["Castle.Core", "System.Threading.Tasks.Extensions"], "netcoreapp2.2": ["Castle.Core", "System.Threading.Tasks.Extensions"], "netcoreapp3.0": ["Castle.Core"], "netcoreapp3.1": ["Castle.Core"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["Castle.Core", "System.Threading.Tasks.Extensions"], "netstandard2.1": ["Castle.Core"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}},
{"name": "NETStandard.Library", "id": "NETStandard.Library", "version": "2.0.3", "sha512": "sha512-548M6mnBSJWxsIlkQHfbzoYxpiYFXZZSL00p4GHYv8PkiqFBnnT68mW5mGEsA/ch9fDO9GkPgkFQpWiXZN7mAQ==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["Microsoft.NETCore.Platforms"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": ["Microsoft.NETCore.Platforms"], "net451": ["Microsoft.NETCore.Platforms"], "net452": ["Microsoft.NETCore.Platforms"], "net46": ["Microsoft.NETCore.Platforms"], "net461": ["Microsoft.NETCore.Platforms"], "net462": ["Microsoft.NETCore.Platforms"], "net47": ["Microsoft.NETCore.Platforms"], "net471": ["Microsoft.NETCore.Platforms"], "net472": ["Microsoft.NETCore.Platforms"], "net48": ["Microsoft.NETCore.Platforms"], "net5.0": ["Microsoft.NETCore.Platforms"], "net6.0": ["Microsoft.NETCore.Platforms"], "net7.0": ["Microsoft.NETCore.Platforms"], "net8.0": ["Microsoft.NETCore.Platforms"], "net9.0": ["Microsoft.NETCore.Platforms"], "netcoreapp1.0": ["Microsoft.NETCore.Platforms"], "netcoreapp1.1": ["Microsoft.NETCore.Platforms"], "netcoreapp2.0": ["Microsoft.NETCore.Platforms"], "netcoreapp2.1": ["Microsoft.NETCore.Platforms"], "netcoreapp2.2": ["Microsoft.NETCore.Platforms"], "netcoreapp3.0": ["Microsoft.NETCore.Platforms"], "netcoreapp3.1": ["Microsoft.NETCore.Platforms"], "netstandard": [], "netstandard1.0": ["Microsoft.NETCore.Platforms"], "netstandard1.1": ["Microsoft.NETCore.Platforms"], "netstandard1.2": ["Microsoft.NETCore.Platforms"], "netstandard1.3": ["Microsoft.NETCore.Platforms"], "netstandard1.4": ["Microsoft.NETCore.Platforms"], "netstandard1.5": ["Microsoft.NETCore.Platforms"], "netstandard1.6": ["Microsoft.NETCore.Platforms"], "netstandard2.0": ["Microsoft.NETCore.Platforms"], "netstandard2.1": ["Microsoft.NETCore.Platforms"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}},
{"name": "NUnit", "id": "NUnit", "version": "4.6.0", "sha512": "sha512-wU1EhvacEM9P0Dv5kcPTqYDeSMVMtl9GrSZedDxLZ/050Bz2vUW9zwAVArejSTJ57ySQ3ZbUZfCPw3c/rSnE+w==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": ["System.Threading.Tasks.Extensions", "System.ValueTuple"], "net47": ["System.Threading.Tasks.Extensions", "System.ValueTuple"], "net471": ["System.Threading.Tasks.Extensions", "System.ValueTuple"], "net472": ["System.Threading.Tasks.Extensions", "System.ValueTuple"], "net48": ["System.Threading.Tasks.Extensions", "System.ValueTuple"], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}},
+ {"name": "NUnit.Analyzers", "id": "NUnit.Analyzers", "version": "4.13.0", "sha512": "sha512-p4t6RdKT1qIxfB7OQb3U3Bp/rpJNHkVSkbDJGdnxJUnFAZjfKR4E+RypLONmzMCGc6Qcy3FVtjgh53qosJmTNw==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}},
{"name": "NUnit3TestAdapter", "id": "NUnit3TestAdapter", "version": "6.2.0", "sha512": "sha512-cakJ6dIfgVJbtPIa0UKDIcpBLU7XAHn+Qt/5qBCVd0ROgYn1cIRgZZ9VnlWAsafVyDf6BqlrMGhHtu4DVHjwWQ==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["Microsoft.Testing.Extensions.VSTestBridge", "Microsoft.Testing.Platform.MSBuild", "Microsoft.Extensions.DependencyModel"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": ["Microsoft.Testing.Extensions.VSTestBridge", "Microsoft.Testing.Platform.MSBuild"], "net47": ["Microsoft.Testing.Extensions.VSTestBridge", "Microsoft.Testing.Platform.MSBuild"], "net471": ["Microsoft.Testing.Extensions.VSTestBridge", "Microsoft.Testing.Platform.MSBuild"], "net472": ["Microsoft.Testing.Extensions.VSTestBridge", "Microsoft.Testing.Platform.MSBuild"], "net48": ["Microsoft.Testing.Extensions.VSTestBridge", "Microsoft.Testing.Platform.MSBuild"], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": ["Microsoft.Testing.Extensions.VSTestBridge", "Microsoft.Testing.Platform.MSBuild", "Microsoft.Extensions.DependencyModel"], "net9.0": ["Microsoft.Testing.Extensions.VSTestBridge", "Microsoft.Testing.Platform.MSBuild", "Microsoft.Extensions.DependencyModel"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}},
{"name": "Runfiles", "id": "Runfiles", "version": "0.14.0", "sha512": "sha512-xncDBZgH/5m3QXFXxTOSQiooXZrEhU9hPThejXvnCmFpGrXYKWq5xWzM3Lp8sL33pTWnuWySnrdIyu5W6DZDiQ==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}},
{"name": "System.Buffers", "id": "System.Buffers", "version": "4.5.1", "sha512": "sha512-gNphWOVbm89+C15jebnPRaYykU8De1PFv1YJV24814IfeGGVa3PXRHDS0MLlbdI1pe9Mpv/n4ZK4INwtAjqv8g==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}},
diff --git a/dotnet/test/remote/BUILD.bazel b/dotnet/test/remote/BUILD.bazel
index e6b0173de9fc3..c667e568d9409 100644
--- a/dotnet/test/remote/BUILD.bazel
+++ b/dotnet/test/remote/BUILD.bazel
@@ -22,6 +22,7 @@ dotnet_nunit_test_suite(
"//dotnet/src/webdriver:webdriver-net8.0",
"//dotnet/test/testing.webserver",
"//dotnet/test/webdriver",
+ nuget_package("NUnit.Analyzers"),
nuget_package("Runfiles"),
],
)
diff --git a/dotnet/test/remote/Selenium.WebDriver.Remote.Tests.csproj b/dotnet/test/remote/Selenium.WebDriver.Remote.Tests.csproj
index b4a5b0c59b432..fb2f13869bb42 100644
--- a/dotnet/test/remote/Selenium.WebDriver.Remote.Tests.csproj
+++ b/dotnet/test/remote/Selenium.WebDriver.Remote.Tests.csproj
@@ -12,6 +12,7 @@
+
diff --git a/dotnet/test/support/BUILD.bazel b/dotnet/test/support/BUILD.bazel
index 10356704aa1b4..3b885981a4702 100644
--- a/dotnet/test/support/BUILD.bazel
+++ b/dotnet/test/support/BUILD.bazel
@@ -25,5 +25,6 @@ dotnet_nunit_test_suite(
"//dotnet/test/webdriver",
nuget_package("Microsoft.Bcl.AsyncInterfaces"),
nuget_package("Moq"),
+ nuget_package("NUnit.Analyzers"),
],
)
diff --git a/dotnet/test/support/Events/EventFiringWebDriverTests.cs b/dotnet/test/support/Events/EventFiringWebDriverTests.cs
index e667fca8119ac..cf67165a7e41e 100644
--- a/dotnet/test/support/Events/EventFiringWebDriverTests.cs
+++ b/dotnet/test/support/Events/EventFiringWebDriverTests.cs
@@ -31,7 +31,6 @@ public class EventFiringWebDriverTests
private Mock mockElement;
private Mock mockShadowRoot;
private Mock mockNavigation;
- private IWebDriver stubDriver;
private StringBuilder log;
[SetUp]
@@ -60,12 +59,12 @@ public void ShouldFireNavigationEvents()
mockNavigation.Setup(_ => _.Forward());
EventFiringWebDriver firingDriver = new EventFiringWebDriver(mockDriver.Object);
- firingDriver.Navigating += new EventHandler(firingDriver_Navigating);
- firingDriver.Navigated += new EventHandler(firingDriver_Navigated);
- firingDriver.NavigatingBack += new EventHandler(firingDriver_NavigatingBack);
- firingDriver.NavigatedBack += new EventHandler(firingDriver_NavigatedBack);
- firingDriver.NavigatingForward += new EventHandler(firingDriver_NavigatingForward);
- firingDriver.NavigatedForward += new EventHandler(firingDriver_NavigatedForward);
+ firingDriver.Navigating += (sender, e) => log.Append("Navigating ").Append(e.Url).AppendLine();
+ firingDriver.Navigated += (sender, e) => log.Append("Navigated ").Append(e.Url).AppendLine();
+ firingDriver.NavigatingBack += (sender, e) => log.AppendLine("Navigating back");
+ firingDriver.NavigatedBack += (sender, e) => log.AppendLine("Navigated back");
+ firingDriver.NavigatingForward += (sender, e) => log.AppendLine("Navigating forward");
+ firingDriver.NavigatedForward += (sender, e) => log.AppendLine("Navigated forward");
firingDriver.Url = "http://www.get.com";
firingDriver.Navigate().GoToUrl("http://www.navigate-to.com");
@@ -99,8 +98,8 @@ public void ShouldFireClickEvent()
mockElement.Setup(_ => _.Click());
EventFiringWebDriver firingDriver = new EventFiringWebDriver(mockDriver.Object);
- firingDriver.ElementClicking += new EventHandler(firingDriver_ElementClicking);
- firingDriver.ElementClicked += new EventHandler(firingDriver_ElementClicked);
+ firingDriver.ElementClicking += (sender, e) => log.AppendLine("Clicking");
+ firingDriver.ElementClicked += (sender, e) => log.AppendLine("Clicked");
firingDriver.FindElement(By.Name("foo")).Click();
@@ -158,8 +157,8 @@ public void ShouldFireFindByEvent()
mockDriver.Setup(_ => _.FindElements(It.Is(x => x.Equals(By.XPath("//link[@type = 'text/css']"))))).Returns(new ReadOnlyCollection(subElements));
EventFiringWebDriver firingDriver = new EventFiringWebDriver(mockDriver.Object);
- firingDriver.FindingElement += new EventHandler(firingDriver_FindingElement);
- firingDriver.FindElementCompleted += new EventHandler(firingDriver_FindElementCompleted);
+ firingDriver.FindingElement += (sender, e) => log.Append("FindingElement from ").Append(e.Element == null ? "IWebDriver " : "IWebElement ").AppendLine(e.FindMethod.ToString());
+ firingDriver.FindElementCompleted += (sender, e) => log.Append("FindElementCompleted from ").Append(e.Element == null ? "IWebDriver " : "IWebElement ").AppendLine(e.FindMethod.ToString());
IWebElement element = firingDriver.FindElement(By.Id("foo"));
element.FindElement(By.LinkText("bar"));
@@ -186,7 +185,7 @@ public void ShouldCallListenerOnException()
mockDriver.Setup(_ => _.FindElement(It.Is(x => x.Equals(By.Id("foo"))))).Throws(exception);
EventFiringWebDriver firingDriver = new EventFiringWebDriver(mockDriver.Object);
- firingDriver.ExceptionThrown += new EventHandler(firingDriver_ExceptionThrown);
+ firingDriver.ExceptionThrown += (sender, e) => log.AppendLine(e.ThrownException.Message);
Assert.That(
() => firingDriver.FindElement(By.Id("foo")),
@@ -226,11 +225,14 @@ public void ShouldBeAbleToWrapSubclassesOfSomethingImplementingTheWebDriverInter
[Test]
public void ShouldBeAbleToAccessWrappedInstanceFromEventCalls()
{
- stubDriver = new StubDriver();
+ var stubDriver = new StubDriver();
EventFiringWebDriver testDriver = new EventFiringWebDriver(stubDriver);
StubDriver wrapped = ((IWrapsDriver)testDriver).WrappedDriver as StubDriver;
Assert.That(wrapped, Is.EqualTo(stubDriver));
- testDriver.Navigating += new EventHandler(testDriver_Navigating);
+ testDriver.Navigating += new EventHandler((sender, e) =>
+ {
+ Assert.That(stubDriver, Is.EqualTo(e.Driver));
+ });
testDriver.Url = "http://example.org";
}
@@ -288,66 +290,6 @@ public void ShouldFireFindEventsInShadowRoot()
Assert.That(findElementCompletedArgs.Element, Is.Null);
}
- void testDriver_Navigating(object sender, WebDriverNavigationEventArgs e)
- {
- Assert.That(stubDriver, Is.EqualTo(e.Driver));
- }
-
- void firingDriver_ExceptionThrown(object sender, WebDriverExceptionEventArgs e)
- {
- log.AppendLine(e.ThrownException.Message);
- }
-
- void firingDriver_FindingElement(object sender, FindElementEventArgs e)
- {
- log.Append("FindingElement from ").Append(e.Element == null ? "IWebDriver " : "IWebElement ").AppendLine(e.FindMethod.ToString());
- }
-
- void firingDriver_FindElementCompleted(object sender, FindElementEventArgs e)
- {
- log.Append("FindElementCompleted from ").Append(e.Element == null ? "IWebDriver " : "IWebElement ").AppendLine(e.FindMethod.ToString());
- }
-
- void firingDriver_ElementClicking(object sender, WebElementEventArgs e)
- {
- log.AppendLine("Clicking");
- }
-
- void firingDriver_ElementClicked(object sender, WebElementEventArgs e)
- {
- log.AppendLine("Clicked");
- }
-
- void firingDriver_Navigating(object sender, WebDriverNavigationEventArgs e)
- {
- log.Append("Navigating ").Append(e.Url).AppendLine();
- }
-
- void firingDriver_Navigated(object sender, WebDriverNavigationEventArgs e)
- {
- log.Append("Navigated ").Append(e.Url).AppendLine();
- }
-
- void firingDriver_NavigatingBack(object sender, WebDriverNavigationEventArgs e)
- {
- log.AppendLine("Navigating back");
- }
-
- void firingDriver_NavigatedBack(object sender, WebDriverNavigationEventArgs e)
- {
- log.AppendLine("Navigated back");
- }
-
- void firingDriver_NavigatingForward(object sender, WebDriverNavigationEventArgs e)
- {
- log.AppendLine("Navigating forward");
- }
-
- void firingDriver_NavigatedForward(object sender, WebDriverNavigationEventArgs e)
- {
- log.AppendLine("Navigated forward");
- }
-
public interface IExecutingDriver : IWebDriver, IJavaScriptExecutor
{
}
diff --git a/dotnet/test/support/Selenium.Support.Tests.csproj b/dotnet/test/support/Selenium.Support.Tests.csproj
index 13d192d52937b..d14b59dc33703 100644
--- a/dotnet/test/support/Selenium.Support.Tests.csproj
+++ b/dotnet/test/support/Selenium.Support.Tests.csproj
@@ -15,6 +15,7 @@
+
diff --git a/dotnet/test/webdriver/BUILD.bazel b/dotnet/test/webdriver/BUILD.bazel
index 1e82ba627c782..a8aa647091b88 100644
--- a/dotnet/test/webdriver/BUILD.bazel
+++ b/dotnet/test/webdriver/BUILD.bazel
@@ -50,6 +50,7 @@ dotnet_nunit_test_suite(
"//dotnet/src/webdriver:webdriver-net8.0",
"//dotnet/test/testing.webserver",
nuget_package("BenderProxy"),
+ nuget_package("NUnit.Analyzers"),
nuget_package("Runfiles"),
],
)
diff --git a/dotnet/test/webdriver/BiDi/BiDiFixture.cs b/dotnet/test/webdriver/BiDi/BiDiFixture.cs
index 057176d488c5c..af3f76b9da7d9 100644
--- a/dotnet/test/webdriver/BiDi/BiDiFixture.cs
+++ b/dotnet/test/webdriver/BiDi/BiDiFixture.cs
@@ -25,7 +25,7 @@ namespace OpenQA.Selenium.Tests.BiDi;
[Parallelizable(ParallelScope.All)]
[FixtureLifeCycle(LifeCycle.InstancePerTestCase)]
-public class BiDiTestFixture
+public abstract class BiDiTestFixture
{
protected IWebDriver driver;
protected IBiDi bidi;
diff --git a/dotnet/test/webdriver/BiDi/BrowsingContext/BrowsingContextTests.cs b/dotnet/test/webdriver/BiDi/BrowsingContext/BrowsingContextTests.cs
index c59ea76c8ae7d..3ad07d6856b93 100644
--- a/dotnet/test/webdriver/BiDi/BrowsingContext/BrowsingContextTests.cs
+++ b/dotnet/test/webdriver/BiDi/BrowsingContext/BrowsingContextTests.cs
@@ -141,7 +141,7 @@ public async Task CanCloseWindow()
var tree = await bidi.BrowsingContext.GetTreeAsync();
- Assert.That(tree.Contexts.Select(i => i.Context), Does.Not.Contain(window));
+ Assert.That(tree.Contexts.Select(i => i.Context), Does.Not.Contain(window.Context));
}
[Test]
@@ -153,7 +153,7 @@ public async Task CanCloseTab()
var tree = await bidi.BrowsingContext.GetTreeAsync();
- Assert.That(tree.Contexts.Select(i => i.Context), Does.Not.Contain(tab));
+ Assert.That(tree.Contexts.Select(i => i.Context), Does.Not.Contain(tab.Context));
}
[Test]
diff --git a/dotnet/test/webdriver/BiDi/Session/SessionTests.cs b/dotnet/test/webdriver/BiDi/Session/SessionTests.cs
index 067909bd006f6..ff69757a4ff1d 100644
--- a/dotnet/test/webdriver/BiDi/Session/SessionTests.cs
+++ b/dotnet/test/webdriver/BiDi/Session/SessionTests.cs
@@ -63,7 +63,9 @@ public void ShouldRespectCancellationToken()
[Test]
public void AsModuleShouldReturnSameInstanceForSameType()
{
- Assert.That(bidi.AsModule(), Is.SameAs(bidi.AsModule()));
+ var module = bidi.AsModule();
+
+ Assert.That(bidi.AsModule(), Is.SameAs(module));
}
[Test]
diff --git a/dotnet/test/webdriver/DevTools/DevToolsDomainsTests.cs b/dotnet/test/webdriver/DevTools/DevToolsDomainsTests.cs
index 280e73b145321..df4b7f1422760 100644
--- a/dotnet/test/webdriver/DevTools/DevToolsDomainsTests.cs
+++ b/dotnet/test/webdriver/DevTools/DevToolsDomainsTests.cs
@@ -33,9 +33,14 @@ public async Task VerifyVersionSpecificDomainsAccessors()
{
var domains = ((DevToolsSession)session).Domains;
- Assert.That(domains.Log, Is.SameAs(domains.Log));
- Assert.That(domains.Network, Is.SameAs(domains.Network));
- Assert.That(domains.Target, Is.SameAs(domains.Target));
- Assert.That(domains.JavaScript, Is.SameAs(domains.JavaScript));
+ var log = domains.Log;
+ var network = domains.Network;
+ var target = domains.Target;
+ var javascript = domains.JavaScript;
+
+ Assert.That(domains.Log, Is.SameAs(log));
+ Assert.That(domains.Network, Is.SameAs(network));
+ Assert.That(domains.Target, Is.SameAs(target));
+ Assert.That(domains.JavaScript, Is.SameAs(javascript));
}
}
diff --git a/dotnet/test/webdriver/DevTools/DevToolsTargetTests.cs b/dotnet/test/webdriver/DevTools/DevToolsTargetTests.cs
index b194499aa2d85..2b2145d20d460 100644
--- a/dotnet/test/webdriver/DevTools/DevToolsTargetTests.cs
+++ b/dotnet/test/webdriver/DevTools/DevToolsTargetTests.cs
@@ -160,7 +160,7 @@ await domains.Target.SetDiscoverTargets(new CurrentCdpVersion.Target.SetDiscover
private void ValidateTargetCrashed(CurrentCdpVersion.Target.TargetCrashedEventArgs targetCrashed)
{
Assert.That(targetCrashed, Is.Not.Null);
- Assert.That(targetCrashed.ErrorCode, Is.Not.Null);
+ Assert.That(targetCrashed.ErrorCode, Is.Not.Zero);
Assert.That(targetCrashed.Status, Is.Not.Null);
Assert.That(targetCrashed.TargetId, Is.Not.Null);
}
diff --git a/dotnet/test/webdriver/DevTools/DevToolsTestFixture.cs b/dotnet/test/webdriver/DevTools/DevToolsTestFixture.cs
index 7088a3008f7cd..54339e770740d 100644
--- a/dotnet/test/webdriver/DevTools/DevToolsTestFixture.cs
+++ b/dotnet/test/webdriver/DevTools/DevToolsTestFixture.cs
@@ -23,7 +23,7 @@
namespace OpenQA.Selenium.Tests.DevTools;
-public class DevToolsTestFixture : DriverTestFixture
+public abstract class DevToolsTestFixture : DriverTestFixture
{
protected IDevTools devTools;
protected IDevToolsSession session;
diff --git a/dotnet/test/webdriver/DownloadsTests.cs b/dotnet/test/webdriver/DownloadsTests.cs
index d829ab10167ad..1303931c8fe74 100644
--- a/dotnet/test/webdriver/DownloadsTests.cs
+++ b/dotnet/test/webdriver/DownloadsTests.cs
@@ -41,7 +41,7 @@ public void QuitAdditionalDriver()
{
if (localDriver != null)
{
- localDriver.Quit();
+ localDriver.Dispose();
localDriver = null;
}
diff --git a/dotnet/test/webdriver/DriverTestFixture.cs b/dotnet/test/webdriver/DriverTestFixture.cs
index d070127935ee4..7c06fccd70fa4 100644
--- a/dotnet/test/webdriver/DriverTestFixture.cs
+++ b/dotnet/test/webdriver/DriverTestFixture.cs
@@ -131,11 +131,19 @@ public void SetUp()
driver = EnvironmentManager.Instance.GetCurrentDriver();
}
+ [OneTimeTearDown]
+ public void TearDown()
+ {
+ EnvironmentManager.Instance.CloseCurrentDriver();
+ driver?.Dispose();
+ }
+
[TearDown]
public void ResetOnError()
{
if (TestContext.CurrentContext.Result.Outcome == Error)
{
+ driver?.Dispose();
driver = EnvironmentManager.Instance.CreateFreshDriver();
}
}
diff --git a/dotnet/test/webdriver/PageLoadingTests.cs b/dotnet/test/webdriver/PageLoadingTests.cs
index df38b3a38b4f6..edecad963175a 100644
--- a/dotnet/test/webdriver/PageLoadingTests.cs
+++ b/dotnet/test/webdriver/PageLoadingTests.cs
@@ -37,7 +37,7 @@ public void QuitAdditionalDriver()
{
if (localDriver != null)
{
- localDriver.Quit();
+ localDriver.Dispose();
localDriver = null;
}
}
diff --git a/dotnet/test/webdriver/ProxySettingTests.cs b/dotnet/test/webdriver/ProxySettingTests.cs
index f8deaa553783b..c83f866a44fb3 100644
--- a/dotnet/test/webdriver/ProxySettingTests.cs
+++ b/dotnet/test/webdriver/ProxySettingTests.cs
@@ -48,7 +48,7 @@ public void QuitAdditionalDriver()
{
if (localDriver != null)
{
- localDriver.Quit();
+ localDriver.Dispose();
localDriver = null;
}
diff --git a/dotnet/test/webdriver/Selenium.WebDriver.Tests.csproj b/dotnet/test/webdriver/Selenium.WebDriver.Tests.csproj
index 67dd19bd07f14..4aaf8ec44207b 100644
--- a/dotnet/test/webdriver/Selenium.WebDriver.Tests.csproj
+++ b/dotnet/test/webdriver/Selenium.WebDriver.Tests.csproj
@@ -15,6 +15,7 @@
+
diff --git a/dotnet/test/webdriver/TimeoutDriverOptionsTests.cs b/dotnet/test/webdriver/TimeoutDriverOptionsTests.cs
index aa528d31a26c8..653ad99c1f7a4 100644
--- a/dotnet/test/webdriver/TimeoutDriverOptionsTests.cs
+++ b/dotnet/test/webdriver/TimeoutDriverOptionsTests.cs
@@ -33,7 +33,7 @@ public class TimeoutDriverOptionsTests
[TearDown]
public void TearDown()
{
- driver?.Quit();
+ driver?.Dispose();
}
[Test]
diff --git a/dotnet/test/webdriver/UnexpectedAlertBehaviorTests.cs b/dotnet/test/webdriver/UnexpectedAlertBehaviorTests.cs
index 45e875c1a4129..175cfd24def6c 100644
--- a/dotnet/test/webdriver/UnexpectedAlertBehaviorTests.cs
+++ b/dotnet/test/webdriver/UnexpectedAlertBehaviorTests.cs
@@ -37,7 +37,7 @@ public void QuitDriver()
{
if (localDriver != null)
{
- localDriver.Quit();
+ localDriver.Dispose();
localDriver = null;
}