Skip to content

Commit 85f11b9

Browse files
author
ravishankar
committed
[feature] #29 fixed
1 parent 7a5651a commit 85f11b9

File tree

2 files changed

+30
-4
lines changed

2 files changed

+30
-4
lines changed

s_tool/driver.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
get_element,
1515
get_session,
1616
hide_show_elements,
17+
is_element,
1718
page_source,
1819
take_screenshot,
1920
visit,
@@ -92,6 +93,7 @@ def _load_methods(self):
9293
self.screenshot = partial(take_screenshot, self.driver)
9394
self.hide = partial(hide_show_elements, self.driver)
9495
self.fill = partial(fill, self.driver)
96+
self.is_element = partial(is_element, self.driver)
9597

9698

9799
if __name__ == "__main__":

s_tool/utils.py

Lines changed: 28 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -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

8181
def 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

Comments
 (0)