55 lines
2.5 KiB
Python
55 lines
2.5 KiB
Python
import random
|
|
import time
|
|
|
|
from selenium.webdriver.common.by import By
|
|
from selenium.webdriver.support.ui import WebDriverWait
|
|
|
|
from utils.common_methods import get_clickable_element, get_element, get_invisible_element
|
|
from utils.logger import get_logger
|
|
|
|
|
|
class Interface_0:
|
|
logger = get_logger()
|
|
|
|
def __init__(self, driver):
|
|
self.driver = driver
|
|
self.client_name_dropdown = get_clickable_element(driver, By.XPATH,
|
|
'/html/body/div/div[1]/div[1]/div/div/div/section/div[1]/div/div/div/div[3]/div[2]/div/div/div/div/div/div/div')
|
|
# self.file_input = self.driver.find_element(By.XPATH, "//input[@type='file']")
|
|
|
|
self.create_batch_btn = self.driver.find_element(By.XPATH, "//div[@data-testid='stButton']/button[@data-testid='baseButton-secondary']")
|
|
|
|
def select_client(self):
|
|
self.client_name_dropdown.click()
|
|
client_list = self.driver.find_elements(By.XPATH, "//li")
|
|
assert len(client_list) > 0
|
|
random_number = random.randint(1, len(client_list) - 1)
|
|
time.sleep(1)
|
|
self.logger.info(f"Selected Client Name: {client_list[random_number].text}")
|
|
client_list[random_number].click()
|
|
time.sleep(5)
|
|
|
|
def upload_files(self, config):
|
|
# file_input = self.driver.find_element(By.XPATH, "//input[@type='file']")
|
|
file_input = get_invisible_element(self.driver, By.XPATH, "//input[@type='file']")
|
|
contract_files = config["contract_files"]
|
|
random_count = random.randint(1, len(contract_files))
|
|
random_elements = random.sample(contract_files, random_count)
|
|
contracts = f'\n{config['contract_files_path']}'.join(random_elements)
|
|
self.logger.info(f"Selected Contract File Name: {', '.join(random_elements)}")
|
|
file_input.send_keys(f"{config['contract_files_path']}{contracts}")
|
|
time.sleep(1)
|
|
WebDriverWait(self.driver, timeout=50).until(
|
|
lambda browser: len(browser.find_elements(By.XPATH, '//div[@role="progressbar"]')) == 0
|
|
)
|
|
time.sleep(5)
|
|
|
|
def create_batch(self):
|
|
create_batch_btn = self.driver.find_element(By.XPATH, "//div[@data-testid='stButton']/button[@data-testid='baseButton-secondary']")
|
|
create_batch_btn.click()
|
|
self.logger.info("Creating batch")
|
|
time.sleep(3)
|
|
p_element = get_element(self.driver, By.XPATH, "//p[starts-with(., 'batch')]")#self.driver.find_element("//p[starts-with(., 'batch')]")
|
|
self.logger.info(f"Created batch with Batch ID: {p_element.text}")
|
|
time.sleep(3)
|