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'])