diff --git a/dotnet/src/webdriver/ElementNotSelectableException.cs b/dotnet/src/webdriver/ElementNotSelectableException.cs
deleted file mode 100644
index 7734e883bb222..0000000000000
--- a/dotnet/src/webdriver/ElementNotSelectableException.cs
+++ /dev/null
@@ -1,63 +0,0 @@
-//
-// Licensed to the Software Freedom Conservancy (SFC) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The SFC licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-//
-
-using System;
-
-#nullable enable
-
-namespace OpenQA.Selenium
-{
- ///
- /// The exception that is thrown when an element is not selectable.
- ///
- [Serializable]
- public class ElementNotSelectableException : InvalidElementStateException
- {
- ///
- /// Initializes a new instance of the class.
- ///
- public ElementNotSelectableException()
- : base()
- {
- }
-
- ///
- /// Initializes a new instance of the class with
- /// a specified error message.
- ///
- /// The message that describes the error.
- public ElementNotSelectableException(string? message)
- : base(message)
- {
- }
-
- ///
- /// Initializes a new instance of the class with
- /// a specified error message and a reference to the inner exception that is the
- /// cause of this exception.
- ///
- /// The error message that explains the reason for the exception.
- /// The exception that is the cause of the current exception,
- /// or if no inner exception is specified.
- public ElementNotSelectableException(string? message, Exception? innerException)
- : base(message, innerException)
- {
- }
- }
-}
diff --git a/dotnet/src/webdriver/ElementNotVisibleException.cs b/dotnet/src/webdriver/ElementNotVisibleException.cs
deleted file mode 100644
index f05ad905afe37..0000000000000
--- a/dotnet/src/webdriver/ElementNotVisibleException.cs
+++ /dev/null
@@ -1,63 +0,0 @@
-//
-// Licensed to the Software Freedom Conservancy (SFC) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The SFC licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-//
-
-using System;
-
-#nullable enable
-
-namespace OpenQA.Selenium
-{
- ///
- /// The exception that is thrown when an element is not visible.
- ///
- [Serializable]
- public class ElementNotVisibleException : ElementNotInteractableException
- {
- ///
- /// Initializes a new instance of the class.
- ///
- public ElementNotVisibleException()
- : base()
- {
- }
-
- ///
- /// Initializes a new instance of the class with
- /// a specified error message.
- ///
- /// The message that describes the error.
- public ElementNotVisibleException(string? message)
- : base(message)
- {
- }
-
- ///
- /// Initializes a new instance of the class with
- /// a specified error message and a reference to the inner exception that is the
- /// cause of this exception.
- ///
- /// The error message that explains the reason for the exception.
- /// The exception that is the cause of the current exception,
- /// or if no inner exception is specified.
- public ElementNotVisibleException(string? message, Exception? innerException)
- : base(message, innerException)
- {
- }
- }
-}
diff --git a/dotnet/src/webdriver/IWebElement.cs b/dotnet/src/webdriver/IWebElement.cs
index 026fd8a85d9ca..7e0c7627cab2b 100644
--- a/dotnet/src/webdriver/IWebElement.cs
+++ b/dotnet/src/webdriver/IWebElement.cs
@@ -104,7 +104,6 @@ public interface IWebElement : ISearchContext
/// .
///
/// Thrown when the target element is not enabled.
- /// Thrown when the target element is not visible.
/// Thrown when the target element is no longer valid in the document DOM.
void SendKeys(string text);
@@ -134,7 +133,6 @@ public interface IWebElement : ISearchContext
/// simulate a users to accidentally missing the target when clicking.
///
///
- /// Thrown when the target element is not visible.
/// Thrown when the target element is no longer valid in the document DOM.
void Click();
diff --git a/dotnet/src/webdriver/Response.cs b/dotnet/src/webdriver/Response.cs
index afb8b720e2bf0..133d82af1619d 100644
--- a/dotnet/src/webdriver/Response.cs
+++ b/dotnet/src/webdriver/Response.cs
@@ -40,24 +40,6 @@ public class Response
Converters = { new ResponseValueJsonConverter() } // we still need it to make `Object` as `Dictionary`
};
- ///
- /// Initializes a new instance of the class
- ///
- [Obsolete("Set all values using the Response(string, object, WebDriverResult) constructor instead. This constructor will be removed in Selenium 4.30")]
- public Response()
- {
- }
-
- ///
- /// Initializes a new instance of the class
- ///
- /// Session ID in use
- [Obsolete("Set all values using the Response(string, object, WebDriverResult) constructor instead. This constructor will be removed in Selenium 4.30")]
- public Response(SessionId? sessionId)
- {
- this.SessionId = sessionId?.ToString();
- }
-
///
/// Initializes a new instance of the class
///
@@ -66,11 +48,9 @@ public Response(SessionId? sessionId)
/// The WebDriver result status of the response.
public Response(string? sessionId, object? value, WebDriverResult status)
{
-#pragma warning disable CS0618 // Type or member is obsolete
this.SessionId = sessionId;
this.Value = value;
this.Status = status;
-#pragma warning restore CS0618 // Type or member is obsolete
}
///
@@ -141,35 +121,17 @@ public static Response FromJson(string value)
///
/// Gets or sets the value from JSON.
///
- public object? Value
- {
- get;
-
- [Obsolete("The Response type will be immutable and this setter will be removed in Selenium 4.30")]
- set;
- }
+ public object? Value { get; }
///
/// Gets or sets the session ID.
///
- public string? SessionId
- {
- get;
-
- [Obsolete("The Response type will be immutable and this setter will be removed in Selenium 4.30")]
- set;
- }
+ public string? SessionId { get; }
///
/// Gets or sets the status value of the response.
///
- public WebDriverResult Status
- {
- get;
-
- [Obsolete("The Response type will be immutable and this setter will be removed in Selenium 4.30")]
- set;
- }
+ public WebDriverResult Status { get; }
///
/// Returns a new from a JSON-encoded string.
diff --git a/dotnet/src/webdriver/WebDriver.cs b/dotnet/src/webdriver/WebDriver.cs
index a0be02f770ea0..b009cca71a08b 100644
--- a/dotnet/src/webdriver/WebDriver.cs
+++ b/dotnet/src/webdriver/WebDriver.cs
@@ -778,16 +778,9 @@ private static void UnpackAndThrowOnError(Response errorResponse, string command
case WebDriverResult.ElementNotInteractable:
throw new ElementNotInteractableException(errorMessage);
- case WebDriverResult.ElementNotDisplayed:
- throw new ElementNotVisibleException(errorMessage);
-
case WebDriverResult.InvalidElementState:
- case WebDriverResult.ElementNotSelectable:
throw new InvalidElementStateException(errorMessage);
- case WebDriverResult.NoSuchDocument:
- throw new NoSuchElementException(errorMessage);
-
case WebDriverResult.Timeout:
throw new WebDriverTimeoutException(errorMessage);
diff --git a/dotnet/src/webdriver/WebDriverResult.cs b/dotnet/src/webdriver/WebDriverResult.cs
index 03b9b20a83f3e..8ee5b5c432d53 100644
--- a/dotnet/src/webdriver/WebDriverResult.cs
+++ b/dotnet/src/webdriver/WebDriverResult.cs
@@ -17,8 +17,6 @@
// under the License.
//
-using System;
-
#nullable enable
namespace OpenQA.Selenium
@@ -33,36 +31,6 @@ public enum WebDriverResult
///
Success = 0,
- ///
- /// The index specified for the action was out of the acceptable range.
- ///
- [Obsolete("This error status is no longer returned by the WebDriver Specification https://www.w3.org/TR/webdriver2/#errors. Will be removed in 4.30")]
- IndexOutOfBounds = 1,
-
- ///
- /// No collection was specified.
- ///
- [Obsolete("This error status is no longer returned by the WebDriver Specification https://www.w3.org/TR/webdriver2/#errors. Will be removed in 4.30")]
- NoCollection = 2,
-
- ///
- /// No string was specified.
- ///
- [Obsolete("This error status is no longer returned by the WebDriver Specification https://www.w3.org/TR/webdriver2/#errors. Will be removed in 4.30")]
- NoString = 3,
-
- ///
- /// No string length was specified.
- ///
- [Obsolete("This error status is no longer returned by the WebDriver Specification https://www.w3.org/TR/webdriver2/#errors. Will be removed in 4.30")]
- NoStringLength = 4,
-
- ///
- /// No string wrapper was specified.
- ///
- [Obsolete("This error status is no longer returned by the WebDriver Specification https://www.w3.org/TR/webdriver2/#errors. Will be removed in 4.30")]
- NoStringWrapper = 5,
-
///
/// Occurs if the given session id is not in the list of active sessions, meaning the session either does not exist or that it's not active.
///
@@ -88,12 +56,6 @@ public enum WebDriverResult
///
ObsoleteElement = 10,
- ///
- /// The specified element is not displayed.
- ///
- [Obsolete("This error status is no longer returned by the WebDriver Specification https://www.w3.org/TR/webdriver2/#errors. Will be removed in 4.30")]
- ElementNotDisplayed = 11,
-
///
/// A command could not be completed because the element is in an invalid state, e.g. attempting to clear an element that isn't both editable and resettable.
///
@@ -104,64 +66,16 @@ public enum WebDriverResult
///
UnknownError = 13,
- ///
- /// An unhandled error occurred.
- ///
- [Obsolete("This value is no longer set for unknown errors: use UnknownError instead. Will be removed in 4.30")]
- UnhandledError = UnknownError,
-
- ///
- /// An error occurred, but it was expected.
- ///
- [Obsolete("This error status is no longer returned by the WebDriver Specification https://www.w3.org/TR/webdriver2/#errors. Will be removed in 4.30")]
- ExpectedError = 14,
-
- ///
- /// The specified element is not selected.
- ///
- [Obsolete("This error status is no longer returned by the WebDriver Specification https://www.w3.org/TR/webdriver2/#errors. Will be removed in 4.30")]
- ElementNotSelectable = 15,
-
- ///
- /// No document matching the criteria exists.
- ///
- [Obsolete("This error status is no longer returned by the WebDriver Specification https://www.w3.org/TR/webdriver2/#errors. Will be removed in 4.30")]
- NoSuchDocument = 16,
-
///
/// An error occurred while executing JavaScript supplied by the user.
///
UnexpectedJavaScriptError = 17,
- ///
- /// No result is available from the JavaScript execution.
- ///
- [Obsolete("This error status is no longer returned by the WebDriver Specification https://www.w3.org/TR/webdriver2/#errors. Will be removed in 4.30")]
- NoScriptResult = 18,
-
- ///
- /// The result from the JavaScript execution is not recognized.
- ///
- [Obsolete("This error status is no longer returned by the WebDriver Specification https://www.w3.org/TR/webdriver2/#errors. Will be removed in 4.30")]
- XPathLookupError = 19,
-
- ///
- /// No collection matching the criteria exists.
- ///
- [Obsolete("This error status is no longer returned by the WebDriver Specification https://www.w3.org/TR/webdriver2/#errors. Will be removed in 4.30")]
- NoSuchCollection = 20,
-
///
/// An operation did not complete before its timeout expired.
///
Timeout = 21,
- ///
- /// A null pointer was received.
- ///
- [Obsolete("This error status is no longer returned by the WebDriver Specification https://www.w3.org/TR/webdriver2/#errors. Will be removed in 4.30")]
- NullPointer = 22,
-
///
/// A command to switch to a window could not be satisfied because the window could not be found.
///
@@ -192,12 +106,6 @@ public enum WebDriverResult
///
AsyncScriptTimeout = 28,
- ///
- /// The coordinates of the element are invalid.
- ///
- [Obsolete("This error status is no longer returned by the WebDriver Specification https://www.w3.org/TR/webdriver2/#errors. Will be removed in 4.30")]
- InvalidElementCoordinates = 29,
-
///
/// Argument was an invalid selector.
///
@@ -213,12 +121,6 @@ public enum WebDriverResult
///
MoveTargetOutOfBounds = 34,
- ///
- /// The XPath selector was invalid.
- ///
- [Obsolete("This error status is no longer returned by the WebDriver Specification https://www.w3.org/TR/webdriver2/#errors. Will be removed in 4.30")]
- InvalidXPathSelector = 51,
-
///
/// Navigation caused the user agent to hit a certificate warning, which is usually the result of an expired or invalid TLS certificate.
///
diff --git a/dotnet/src/webdriver/WebElement.cs b/dotnet/src/webdriver/WebElement.cs
index 0c0eca538b109..62a85580329d1 100644
--- a/dotnet/src/webdriver/WebElement.cs
+++ b/dotnet/src/webdriver/WebElement.cs
@@ -303,7 +303,6 @@ public virtual void Clear()
/// behavior.
///
/// Thrown when the target element is not enabled.
- /// Thrown when the target element is not visible.
/// Thrown when the target element is no longer valid in the document DOM.
public virtual void Click()
{
@@ -553,7 +552,6 @@ public virtual Screenshot GetScreenshot()
/// .
///
/// Thrown when the target element is not enabled.
- /// Thrown when the target element is not visible.
/// Thrown when the target element is no longer valid in the document DOM.
public virtual void SendKeys(string text)
{