@@ -30,7 +30,7 @@ def current_url(driver: webdriver) -> str:
3030 return driver .current_url
3131
3232
33- def get_locator (locator_type : str , locator_text : str ) -> tuple :
33+ def get_locator (locator_text : str , locator_type : str = "id" ) -> tuple :
3434 """Return element locator
3535
3636 Args:
@@ -68,7 +68,7 @@ def get_element(
6868 locator_type = locator_type .upper ()
6969 if hasattr (By , locator_type ):
7070 try :
71- locator = get_locator (locator_type , locator_text )
71+ locator = get_locator (locator_text , locator_type )
7272 is_multiple = "s" if many else ""
7373 func = getattr (driver , f"find_element{ is_multiple } " )
7474 return func (* locator )
@@ -79,7 +79,7 @@ def get_element(
7979
8080
8181def click (
82- driver : webdriver , locator_type : str , locator_text : str , click_time : int = 10
82+ driver : webdriver , locator_text : str , locator_type : str = "id" , click_time : int = 10
8383) -> Union [bool , None ]:
8484 """Return True if element clicked otherwise return None
8585
@@ -95,7 +95,7 @@ def click(
9595 None : Not clicked or Not Found
9696 """
9797 try :
98- elem_locator = get_locator (locator_type , locator_text )
98+ elem_locator = get_locator (locator_text , locator_type )
9999 element = WebDriverWait (driver , click_time ).until (
100100 EC .element_to_be_clickable (elem_locator )
101101 )
@@ -249,3 +249,27 @@ def fill(driver: WebDriver, kwargs: dict) -> None:
249249 element .send_keys (value )
250250 else :
251251 raise SToolException ("NOTIMPLEMENTED" )
252+
253+
254+ def is_element (driver , locator_text , locator_type = "id" , wait_time = 2 ):
255+ """Check if the element is present on page
256+
257+ Args:
258+ driver : selenium Webdriver,
259+ locator_type : provide any attribute type
260+ id,class_name,tag_name
261+ xpath, css_selector
262+
263+ locator_text : attribute value
264+
265+ Returns:
266+ True: If element exists on page
267+ False: If element not exists on page
268+ """
269+
270+ try :
271+ locator = get_locator (locator_text , locator_type )
272+ WebDriverWait (driver , wait_time ).until (EC .presence_of_element_located (locator ))
273+ return True
274+ except :
275+ return False
0 commit comments