import random import time from selenium.common import InvalidArgumentException from selenium.webdriver.support.ui import WebDriverWait from elements.interface_0_elements import Interface_0_elements from utils.logger import get_logger from utils.reader import read_files class Interface_0(Interface_0_elements): logger = get_logger() p_element = None def __init__(self, driver, config): self.driver = driver self.config = config def select_client(self, client_name=''): client_name_dropdown = super().get_client_name_dropdown(self.driver, self.config) client_name_dropdown.click() client_list = super().get_client_list(self.driver) assert len(client_list) > 0 if client_name == '': random_number = random.randint(0, len(client_list) - 1) time.sleep(1) self.logger.info(f"Selected Client Name: {client_list[random_number].text}") client_name = client_list[random_number].text client_list[random_number].click() else: for client in client_list: if client_name == client.text: client.click() self.logger.info(f"Selected Client Name: {client_name}") break time.sleep(20) return client_name def upload_files(self, client_name): file_list = "" try: file_input = super().get_file_input(self.driver, self.config) file_list = read_files(self.config["contract_files_path"]+client_name+"\\") files = '\n'.join(file_list) print(files) file_input.send_keys(files) self.logger.info(f"Uploading files...") time.sleep(10) WebDriverWait(self.driver, timeout=50).until( lambda browser: len(super().get_file_input_progress(browser)) == 0 ) time.sleep(10) except InvalidArgumentException as e: print(e) self.logger.info(f"File not found in test folder {', '.join(file_list)}") except Exception as e1: print(e1) self.logger.info(f"Exception occur") def create_batch(self): create_batch_btn = super().get_create_batch_btn(self.driver, self.config) create_batch_btn.click() # self.logger.info("Creating batch") time.sleep(3) def verify_message(self, tc): time.sleep(3) if tc == 'POS': return super().get_p_element(self.driver, self.config) else: return super().get_error_toast(self.driver, self.config)