diff --git a/py/selenium/webdriver/chrome/service.py b/py/selenium/webdriver/chrome/service.py index 40f94841b2304..7c4074021caba 100644 --- a/py/selenium/webdriver/chrome/service.py +++ b/py/selenium/webdriver/chrome/service.py @@ -37,10 +37,10 @@ class Service(service.ChromiumService): def __init__( self, - executable_path=None, + executable_path: Optional[str] = None, port: int = 0, service_args: Optional[List[str]] = None, - log_output: SubprocessStdAlias = None, + log_output: Optional[SubprocessStdAlias] = None, env: Optional[Mapping[str, str]] = None, **kwargs, ) -> None: diff --git a/py/selenium/webdriver/chrome/webdriver.py b/py/selenium/webdriver/chrome/webdriver.py index 5fb9583b6817c..15f4aeaf6094e 100644 --- a/py/selenium/webdriver/chrome/webdriver.py +++ b/py/selenium/webdriver/chrome/webdriver.py @@ -15,6 +15,8 @@ # specific language governing permissions and limitations # under the License. +from typing import Optional + from selenium.webdriver.chromium.webdriver import ChromiumDriver from selenium.webdriver.common.desired_capabilities import DesiredCapabilities @@ -27,8 +29,8 @@ class WebDriver(ChromiumDriver): def __init__( self, - options: Options = None, - service: Service = None, + options: Optional[Options] = None, + service: Optional[Service] = None, keep_alive: bool = True, ) -> None: """Creates a new instance of the chrome driver. Starts the service and diff --git a/py/selenium/webdriver/chromium/service.py b/py/selenium/webdriver/chromium/service.py index 621b86051a886..f520d1d86db89 100644 --- a/py/selenium/webdriver/chromium/service.py +++ b/py/selenium/webdriver/chromium/service.py @@ -37,12 +37,12 @@ class ChromiumService(service.Service): def __init__( self, - executable_path: str = None, + executable_path: Optional[str] = None, port: int = 0, service_args: Optional[List[str]] = None, - log_output: SubprocessStdAlias = None, + log_output: Optional[SubprocessStdAlias] = None, env: Optional[Mapping[str, str]] = None, - driver_path_env_key: str = None, + driver_path_env_key: Optional[str] = None, **kwargs, ) -> None: self.service_args = service_args or [] diff --git a/py/selenium/webdriver/chromium/webdriver.py b/py/selenium/webdriver/chromium/webdriver.py index a7721e4de0bdf..0ec4ec61e4574 100644 --- a/py/selenium/webdriver/chromium/webdriver.py +++ b/py/selenium/webdriver/chromium/webdriver.py @@ -15,6 +15,8 @@ # specific language governing permissions and limitations # under the License. +from typing import Optional + from selenium.webdriver.chromium.remote_connection import ChromiumRemoteConnection from selenium.webdriver.common.driver_finder import DriverFinder from selenium.webdriver.common.options import ArgOptions @@ -29,10 +31,10 @@ class ChromiumDriver(RemoteWebDriver): def __init__( self, - browser_name: str = None, - vendor_prefix: str = None, + browser_name: Optional[str] = None, + vendor_prefix: Optional[str] = None, options: ArgOptions = ArgOptions(), - service: Service = None, + service: Optional[Service] = None, keep_alive: bool = True, ) -> None: """Creates a new WebDriver instance of the ChromiumDriver. Starts the diff --git a/py/selenium/webdriver/common/actions/key_actions.py b/py/selenium/webdriver/common/actions/key_actions.py index 5f29d724f8d38..94caed9bdd192 100644 --- a/py/selenium/webdriver/common/actions/key_actions.py +++ b/py/selenium/webdriver/common/actions/key_actions.py @@ -26,7 +26,7 @@ class KeyActions(Interaction): def __init__(self, source: KeyInput | PointerInput | WheelInput | None = None) -> None: - if not source: + if source is None: source = KeyInput(KEY) self.source = source super().__init__(source) diff --git a/py/selenium/webdriver/common/actions/pointer_actions.py b/py/selenium/webdriver/common/actions/pointer_actions.py index 7a231fe7f04ef..2a8b19d339315 100644 --- a/py/selenium/webdriver/common/actions/pointer_actions.py +++ b/py/selenium/webdriver/common/actions/pointer_actions.py @@ -31,7 +31,7 @@ def __init__(self, source: Optional[PointerInput] = None, duration: int = 250): - source: PointerInput instance - duration: override the default 250 msecs of DEFAULT_MOVE_DURATION in source """ - if not source: + if source is None: source = PointerInput(interaction.POINTER_MOUSE, "mouse") self.source = source self._duration = duration diff --git a/py/selenium/webdriver/common/actions/wheel_actions.py b/py/selenium/webdriver/common/actions/wheel_actions.py index 43c080dfa69ba..f258f293a6d76 100644 --- a/py/selenium/webdriver/common/actions/wheel_actions.py +++ b/py/selenium/webdriver/common/actions/wheel_actions.py @@ -14,13 +14,16 @@ # KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. + +from typing import Optional + from .interaction import Interaction from .wheel_input import WheelInput class WheelActions(Interaction): - def __init__(self, source: WheelInput = None): - if not source: + def __init__(self, source: Optional[WheelInput] = None): + if source is None: source = WheelInput("wheel") super().__init__(source) diff --git a/py/selenium/webdriver/common/options.py b/py/selenium/webdriver/common/options.py index 111fd32eb5673..c43e0fb0a912e 100644 --- a/py/selenium/webdriver/common/options.py +++ b/py/selenium/webdriver/common/options.py @@ -19,6 +19,7 @@ from abc import ABCMeta from abc import abstractmethod from enum import Enum +from typing import List from typing import Optional from selenium.common.exceptions import InvalidArgumentException @@ -475,14 +476,14 @@ class ArgOptions(BaseOptions): def __init__(self) -> None: super().__init__() - self._arguments = [] + self._arguments: List[str] = [] @property def arguments(self): """:Returns: A list of arguments needed for the browser.""" return self._arguments - def add_argument(self, argument) -> None: + def add_argument(self, argument: str) -> None: """Adds an argument to the list. :Args: diff --git a/py/selenium/webdriver/common/service.py b/py/selenium/webdriver/common/service.py index d74b55ef3be18..5d60aba6bd75a 100644 --- a/py/selenium/webdriver/common/service.py +++ b/py/selenium/webdriver/common/service.py @@ -55,11 +55,11 @@ class Service(ABC): def __init__( self, - executable_path: str = None, + executable_path: Optional[str] = None, port: int = 0, - log_output: SubprocessStdAlias = None, + log_output: Optional[SubprocessStdAlias] = None, env: Optional[Mapping[Any, Any]] = None, - driver_path_env_key: str = None, + driver_path_env_key: Optional[str] = None, **kwargs, ) -> None: if isinstance(log_output, str): diff --git a/py/selenium/webdriver/edge/service.py b/py/selenium/webdriver/edge/service.py index 8d7b6b2fbc371..8834a63d50846 100644 --- a/py/selenium/webdriver/edge/service.py +++ b/py/selenium/webdriver/edge/service.py @@ -37,12 +37,12 @@ class Service(service.ChromiumService): def __init__( self, - executable_path: str = None, + executable_path: Optional[str] = None, port: int = 0, - log_output: SubprocessStdAlias = None, + log_output: Optional[SubprocessStdAlias] = None, service_args: Optional[List[str]] = None, env: Optional[Mapping[str, str]] = None, - driver_path_env_key: str = None, + driver_path_env_key: Optional[str] = None, **kwargs, ) -> None: self.service_args = service_args or [] diff --git a/py/selenium/webdriver/edge/webdriver.py b/py/selenium/webdriver/edge/webdriver.py index a40e723627138..5b7b1856dfc08 100644 --- a/py/selenium/webdriver/edge/webdriver.py +++ b/py/selenium/webdriver/edge/webdriver.py @@ -15,6 +15,8 @@ # specific language governing permissions and limitations # under the License. +from typing import Optional + from selenium.webdriver.chromium.webdriver import ChromiumDriver from selenium.webdriver.common.desired_capabilities import DesiredCapabilities @@ -27,8 +29,8 @@ class WebDriver(ChromiumDriver): def __init__( self, - options: Options = None, - service: Service = None, + options: Optional[Options] = None, + service: Optional[Service] = None, keep_alive: bool = True, ) -> None: """Creates a new instance of the edge driver. Starts the service and diff --git a/py/selenium/webdriver/firefox/service.py b/py/selenium/webdriver/firefox/service.py index d9a715a5d22e0..9f45e74699ede 100644 --- a/py/selenium/webdriver/firefox/service.py +++ b/py/selenium/webdriver/firefox/service.py @@ -37,12 +37,12 @@ class Service(service.Service): def __init__( self, - executable_path: str = None, + executable_path: Optional[str] = None, port: int = 0, service_args: Optional[List[str]] = None, - log_output: SubprocessStdAlias = None, + log_output: Optional[SubprocessStdAlias] = None, env: Optional[Mapping[str, str]] = None, - driver_path_env_key: str = None, + driver_path_env_key: Optional[str] = None, **kwargs, ) -> None: self.service_args = service_args or [] diff --git a/py/selenium/webdriver/firefox/webdriver.py b/py/selenium/webdriver/firefox/webdriver.py index b11936914b5e9..8167b30d3d573 100644 --- a/py/selenium/webdriver/firefox/webdriver.py +++ b/py/selenium/webdriver/firefox/webdriver.py @@ -20,6 +20,7 @@ import zipfile from contextlib import contextmanager from io import BytesIO +from typing import Optional from selenium.webdriver.common.driver_finder import DriverFinder from selenium.webdriver.remote.webdriver import WebDriver as RemoteWebDriver @@ -37,8 +38,8 @@ class WebDriver(RemoteWebDriver): def __init__( self, - options: Options = None, - service: Service = None, + options: Optional[Options] = None, + service: Optional[Service] = None, keep_alive: bool = True, ) -> None: """Creates a new instance of the Firefox driver. Starts the service and diff --git a/py/selenium/webdriver/ie/service.py b/py/selenium/webdriver/ie/service.py index bd9c116ced459..537c42138b5f7 100644 --- a/py/selenium/webdriver/ie/service.py +++ b/py/selenium/webdriver/ie/service.py @@ -26,13 +26,13 @@ class Service(service.Service): def __init__( self, - executable_path: str = None, + executable_path: Optional[str] = None, port: int = 0, host: Optional[str] = None, service_args: Optional[List[str]] = None, log_level: Optional[str] = None, - log_output: SubprocessStdAlias = None, - driver_path_env_key: str = None, + log_output: Optional[SubprocessStdAlias] = None, + driver_path_env_key: Optional[str] = None, **kwargs, ) -> None: """Creates a new instance of the Service. diff --git a/py/selenium/webdriver/ie/webdriver.py b/py/selenium/webdriver/ie/webdriver.py index 4df2c989a5813..5eade176c1589 100644 --- a/py/selenium/webdriver/ie/webdriver.py +++ b/py/selenium/webdriver/ie/webdriver.py @@ -15,6 +15,8 @@ # specific language governing permissions and limitations # under the License. +from typing import Optional + from selenium.webdriver.common.driver_finder import DriverFinder from selenium.webdriver.remote.client_config import ClientConfig from selenium.webdriver.remote.remote_connection import RemoteConnection @@ -30,8 +32,8 @@ class WebDriver(RemoteWebDriver): def __init__( self, - options: Options = None, - service: Service = None, + options: Optional[Options] = None, + service: Optional[Service] = None, keep_alive: bool = True, ) -> None: """Creates a new instance of the Ie driver. diff --git a/py/selenium/webdriver/remote/remote_connection.py b/py/selenium/webdriver/remote/remote_connection.py index 4c3eaa1ec11c6..4997b3b7c0bf6 100644 --- a/py/selenium/webdriver/remote/remote_connection.py +++ b/py/selenium/webdriver/remote/remote_connection.py @@ -154,7 +154,7 @@ class RemoteConnection: _timeout = socket.getdefaulttimeout() _ca_certs = os.getenv("REQUESTS_CA_BUNDLE") if "REQUESTS_CA_BUNDLE" in os.environ else certifi.where() - _client_config: ClientConfig = None + _client_config: Optional[ClientConfig] = None system = platform.system().lower() if system == "darwin": diff --git a/py/selenium/webdriver/remote/webdriver.py b/py/selenium/webdriver/remote/webdriver.py index ca7940967562b..336b05ea0107f 100644 --- a/py/selenium/webdriver/remote/webdriver.py +++ b/py/selenium/webdriver/remote/webdriver.py @@ -32,6 +32,7 @@ from contextlib import asynccontextmanager from contextlib import contextmanager from importlib import import_module +from typing import Any from typing import Dict from typing import List from typing import Optional @@ -422,7 +423,7 @@ def execute_cdp_cmd(self, cmd: str, cmd_args: dict): """ return self.execute("executeCdpCommand", {"cmd": cmd, "params": cmd_args})["value"] - def execute(self, driver_command: str, params: dict = None) -> dict: + def execute(self, driver_command: str, params: Optional[dict[str, Any]] = None) -> dict[str, Any]: """Sends a command to be executed by a command.CommandExecutor. Parameters: @@ -518,7 +519,7 @@ def get_pinned_scripts(self) -> List[str]: """ return list(self.pinned_scripts) - def execute_script(self, script, *args): + def execute_script(self, script: str, *args): """Synchronously Executes JavaScript in the current window/frame. Parameters: diff --git a/py/selenium/webdriver/safari/service.py b/py/selenium/webdriver/safari/service.py index 79448b9789a26..c6132aaddafad 100644 --- a/py/selenium/webdriver/safari/service.py +++ b/py/selenium/webdriver/safari/service.py @@ -37,13 +37,13 @@ class Service(service.Service): def __init__( self, - executable_path: str = None, + executable_path: Optional[str] = None, port: int = 0, service_args: Optional[List[str]] = None, env: Optional[Mapping[str, str]] = None, reuse_service=False, enable_logging: bool = False, - driver_path_env_key: str = None, + driver_path_env_key: Optional[str] = None, **kwargs, ) -> None: self.service_args = service_args or [] diff --git a/py/selenium/webdriver/safari/webdriver.py b/py/selenium/webdriver/safari/webdriver.py index 2c37a4bd7abde..17cc615794a21 100644 --- a/py/selenium/webdriver/safari/webdriver.py +++ b/py/selenium/webdriver/safari/webdriver.py @@ -15,6 +15,8 @@ # specific language governing permissions and limitations # under the License. +from typing import Optional + from selenium.common.exceptions import WebDriverException from selenium.webdriver.remote.webdriver import WebDriver as RemoteWebDriver @@ -30,8 +32,8 @@ class WebDriver(RemoteWebDriver): def __init__( self, keep_alive=True, - options: Options = None, - service: Service = None, + options: Optional[Options] = None, + service: Optional[Service] = None, ) -> None: """Creates a new Safari driver instance and launches or finds a running safaridriver service. diff --git a/py/selenium/webdriver/support/event_firing_webdriver.py b/py/selenium/webdriver/support/event_firing_webdriver.py index 6cfdf7b9fb93b..1118bb7c19727 100644 --- a/py/selenium/webdriver/support/event_firing_webdriver.py +++ b/py/selenium/webdriver/support/event_firing_webdriver.py @@ -89,7 +89,7 @@ def back(self) -> None: def forward(self) -> None: self._dispatch("navigate_forward", (self._driver,), "forward", ()) - def execute_script(self, script, *args): + def execute_script(self, script: str, *args): unwrapped_args = (script,) + self._unwrap_element_args(args) return self._dispatch("execute_script", (script, self._driver), "execute_script", unwrapped_args) diff --git a/py/selenium/webdriver/webkitgtk/webdriver.py b/py/selenium/webdriver/webkitgtk/webdriver.py index 02fb6291ce818..ba1c03a18c945 100644 --- a/py/selenium/webdriver/webkitgtk/webdriver.py +++ b/py/selenium/webdriver/webkitgtk/webdriver.py @@ -16,6 +16,7 @@ # under the License. import http.client as http_client +from typing import Optional from selenium.webdriver.common.driver_finder import DriverFinder from selenium.webdriver.remote.webdriver import WebDriver as RemoteWebDriver @@ -30,7 +31,7 @@ class WebDriver(RemoteWebDriver): def __init__( self, options=None, - service: Service = None, + service: Optional[Service] = None, ): """Creates a new instance of the WebKitGTK driver. diff --git a/py/selenium/webdriver/wpewebkit/webdriver.py b/py/selenium/webdriver/wpewebkit/webdriver.py index ff2f5531fe312..5019b512d3173 100644 --- a/py/selenium/webdriver/wpewebkit/webdriver.py +++ b/py/selenium/webdriver/wpewebkit/webdriver.py @@ -16,6 +16,7 @@ # under the License. import http.client as http_client +from typing import Optional from selenium.webdriver.common.driver_finder import DriverFinder from selenium.webdriver.remote.webdriver import WebDriver as RemoteWebDriver @@ -30,7 +31,7 @@ class WebDriver(RemoteWebDriver): def __init__( self, options=None, - service: Service = None, + service: Optional[Service] = None, ): """Creates a new instance of the WPEWebKit driver.