Files
doczyai-pipelines/Doczy.AI_Automation/pages/interface_0_page_objects.py
T
2024-05-20 17:46:45 +05:30

61 lines
2.6 KiB
Python

import random
import time
from selenium.common import InvalidArgumentException
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from utils.element_related_methods import get_clickable_element, get_element, get_invisible_element
from utils.logger import get_logger
class Interface_0:
logger = get_logger()
p_element = None
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')
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_name = client_list[random_number].text
client_list[random_number].click()
time.sleep(5)
return client_name
def upload_files(self, config):
# file_input = self.driver.find_element(By.XPATH, "//input[@type='file']")
try:
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)
except InvalidArgumentException:
self.logger.info(f"File not found in test folder{', '.join(random_elements)}")
except:
self.logger.info(f"Exception occur")
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)
self.p_element = get_element(self.driver, By.XPATH, "//p[starts-with(., 'batch')]")
time.sleep(3)