49 lines
1.5 KiB
Python
49 lines
1.5 KiB
Python
from selenium.common import TimeoutException
|
|
from selenium.webdriver.support.wait import WebDriverWait
|
|
from selenium.webdriver.support import expected_conditions as ec
|
|
|
|
from tests.conftest import config
|
|
from utils.CustomException import NoElementFound, TitleNotFound
|
|
|
|
|
|
def get_clickable_element(driver, config, By, element_id):
|
|
|
|
try:
|
|
element = WebDriverWait(driver, timeout=config["timeout"]).until(
|
|
ec.element_to_be_clickable((By, element_id))
|
|
)
|
|
except TimeoutException:
|
|
# print("NoElement")
|
|
raise NoElementFound(element_id, config["timeout"])
|
|
return element
|
|
|
|
|
|
def get_element(driver, config, By, element_id):
|
|
try:
|
|
return WebDriverWait(driver, timeout=config["timeout"]).until(
|
|
ec.visibility_of_element_located((By, element_id))
|
|
)
|
|
except TimeoutException:
|
|
# print("NoElement")
|
|
raise NoElementFound(element_id, config["timeout"])
|
|
|
|
|
|
def get_invisible_element(driver, config, By, element_id):
|
|
try:
|
|
return WebDriverWait(driver, timeout=config["timeout"]).until(
|
|
ec.presence_of_element_located((By, element_id))
|
|
)
|
|
except TimeoutException:
|
|
# print("NoElement")
|
|
raise NoElementFound(element_id, config["timeout"])
|
|
|
|
|
|
def get_title(driver, config, title):
|
|
try:
|
|
return WebDriverWait(driver, timeout=config["timeout"]).until(
|
|
ec.title_contains(title)
|
|
)
|
|
except TimeoutException:
|
|
# print("NoElement")
|
|
raise TitleNotFound(title, config["timeout"])
|