1515# limitations under the License.
1616from collections import namedtuple
1717from inspect import getdoc , isclass
18+ from typing import Optional , List
1819
1920from robot .api import logger
2021from robot .errors import DataError
2324from robot .utils .importer import Importer
2425
2526from robotlibcore import DynamicCore
27+ from selenium .webdriver .remote .webdriver import WebDriver
28+ from selenium .webdriver .remote .webelement import WebElement
2629
2730from SeleniumLibrary .base import LibraryComponent
2831from 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.
0 commit comments