Skip to content

Commit 691df41

Browse files
committed
SL __init__ typing hints
1 parent d519322 commit 691df41

File tree

2 files changed

+17
-10
lines changed

2 files changed

+17
-10
lines changed

src/SeleniumLibrary/__init__.py

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
# limitations under the License.
1616
from collections import namedtuple
1717
from inspect import getdoc, isclass
18+
from typing import Optional, List
1819

1920
from robot.api import logger
2021
from robot.errors import DataError
@@ -23,6 +24,8 @@
2324
from robot.utils.importer import Importer
2425

2526
from robotlibcore import DynamicCore
27+
from selenium.webdriver.remote.webdriver import WebDriver
28+
from selenium.webdriver.remote.webelement import WebElement
2629

2730
from SeleniumLibrary.base import LibraryComponent
2831
from SeleniumLibrary.errors import NoOpenBrowser, PluginError
@@ -439,9 +442,9 @@ def __init__(
439442
timeout=5.0,
440443
implicit_wait=0.0,
441444
run_on_failure="Capture Page Screenshot",
442-
screenshot_root_directory=None,
443-
plugins=None,
444-
event_firing_webdriver=None,
445+
screenshot_root_directory: Optional[str] = None,
446+
plugins: Optional[str] = None,
447+
event_firing_webdriver: Optional[str] = None,
445448
):
446449
"""SeleniumLibrary can be imported with several optional arguments.
447450
@@ -500,20 +503,20 @@ def __init__(
500503
self._drivers = WebDriverCache()
501504
DynamicCore.__init__(self, libraries)
502505

503-
def run_keyword(self, name, args, kwargs):
506+
def run_keyword(self, name: str, args: tuple, kwargs: dict):
504507
try:
505508
return DynamicCore.run_keyword(self, name, args, kwargs)
506509
except Exception:
507510
self.failure_occurred()
508511
raise
509512

510-
def get_keyword_tags(self, name):
513+
def get_keyword_tags(self, name: str):
511514
tags = list(DynamicCore.get_keyword_tags(self, name))
512515
if name in self._plugin_keywords:
513516
tags.append("plugin")
514517
return tags
515518

516-
def get_keyword_documentation(self, name):
519+
def get_keyword_documentation(self, name: str):
517520
if name == "__intro__":
518521
return self._get_intro_documentation()
519522
return DynamicCore.get_keyword_documentation(self, name)
@@ -534,7 +537,7 @@ def _get_intro_documentation(self):
534537
intro = f"{intro}{plugin_doc.doc}"
535538
return intro
536539

537-
def register_driver(self, driver, alias):
540+
def register_driver(self, driver: WebDriver, alias: str):
538541
"""Add's a `driver` to the library WebDriverCache.
539542
540543
:param driver: Instance of the Selenium `WebDriver`.
@@ -576,7 +579,9 @@ def driver(self):
576579
raise NoOpenBrowser("No browser is open.")
577580
return self._drivers.current
578581

579-
def find_element(self, locator, parent=None):
582+
def find_element(
583+
self, locator: str, parent: Optional[WebElement] = None
584+
) -> WebElement:
580585
"""Find element matching `locator`.
581586
582587
:param locator: Locator to use when searching the element.
@@ -591,7 +596,9 @@ def find_element(self, locator, parent=None):
591596
"""
592597
return self._element_finder.find(locator, parent=parent)
593598

594-
def find_elements(self, locator, parent=None):
599+
def find_elements(
600+
self, locator: str, parent: WebElement = None
601+
) -> List[WebElement]:
595602
"""Find all elements matching `locator`.
596603
597604
:param locator: Locator to use when searching the element.

src/SeleniumLibrary/__init__.pyi

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11

22
class SeleniumLibrary:
3-
def __init__(self, timeout = 5.0, implicit_wait = 0.0, run_on_failure = 'Capture Page Screenshot', screenshot_root_directory = None, plugins = None, event_firing_webdriver = None): ...
3+
def __init__(self, timeout = 5.0, implicit_wait = 0.0, run_on_failure = 'Capture Page Screenshot', screenshot_root_directory: Optional[str] = None, plugins: Optional[str] = None, event_firing_webdriver: Optional[str] = None): ...
44
def add_cookie(self, name, value, path = None, domain = None, secure = None, expiry = None): ...
55
def add_location_strategy(self, strategy_name, strategy_keyword, persist = False): ...
66
def alert_should_be_present(self, text = '', action = 'ACCEPT', timeout = None): ...

0 commit comments

Comments
 (0)