1313# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1414# See the License for the specific language governing permissions and
1515# limitations under the License.
16+ from typing import Any , Optional , List
17+
18+ from selenium .webdriver .remote .webelement import WebElement
1619
1720from SeleniumLibrary .utils import escape_xpath_value
1821
@@ -39,18 +42,24 @@ def element_finder(self):
3942 return self .ctx ._element_finder
4043
4144 @element_finder .setter
42- def element_finder (self , value ):
45+ def element_finder (self , value : Any ):
4346 self .ctx ._element_finder = value
4447
4548 @property
4649 def event_firing_webdriver (self ):
4750 return self .ctx .event_firing_webdriver
4851
4952 @event_firing_webdriver .setter
50- def event_firing_webdriver (self , event_firing_webdriver ):
53+ def event_firing_webdriver (self , event_firing_webdriver : Any ):
5154 self .ctx .event_firing_webdriver = event_firing_webdriver
5255
53- def find_element (self , locator , tag = None , required = True , parent = None ):
56+ def find_element (
57+ self ,
58+ locator : str ,
59+ tag : Optional [str ] = None ,
60+ required : bool = True ,
61+ parent : WebElement = None ,
62+ ) -> WebElement :
5463 """Find element matching `locator`.
5564
5665 :param locator: Locator to use when searching the element.
@@ -72,7 +81,9 @@ def find_element(self, locator, tag=None, required=True, parent=None):
7281 """
7382 return self .element_finder .find (locator , tag , True , required , parent )
7483
75- def find_elements (self , locator , tag = None , parent = None ):
84+ def find_elements (
85+ self , locator : str , tag : Optional [str ] = None , parent : WebElement = None
86+ ) -> List [WebElement ]:
7687 """Find all elements matching `locator`.
7788
7889 :param locator: Locator to use when searching the element.
@@ -88,14 +99,14 @@ def find_elements(self, locator, tag=None, parent=None):
8899 """
89100 return self .element_finder .find (locator , tag , False , False , parent )
90101
91- def is_text_present (self , text ):
102+ def is_text_present (self , text : str ):
92103 locator = f"xpath://*[contains(., { escape_xpath_value (text )} )]"
93104 return self .find_element (locator , required = False ) is not None
94105
95- def is_element_enabled (self , locator , tag = None ):
106+ def is_element_enabled (self , locator : str , tag : Optional [ str ] = None ) -> bool :
96107 element = self .find_element (locator , tag )
97108 return element .is_enabled () and element .get_attribute ("readonly" ) is None
98109
99- def is_visible (self , locator ) :
110+ def is_visible (self , locator : str ) -> bool :
100111 element = self .find_element (locator , required = False )
101112 return element .is_displayed () if element else None
0 commit comments