Files
doczyai-pipelines/Doczy.AI_Automation/pages/interface_1_page_objects.py
T

76 lines
3.4 KiB
Python
Raw Normal View History

2024-05-20 17:46:45 +05:30
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_1:
logger = get_logger()
selected_batch = ''
result_message = None
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_list[random_number].click()
time.sleep(5)
def select_batch(self):
batch_id = get_clickable_element(self.driver, By.XPATH, '/html/body/div[1]/div[1]/div[1]/div/div/div/section/div[1]/div/div/div/div[3]/div[2]/div/div/div/div/div/div/div')
batch_id.click()
batch_id_list = self.driver.find_elements(By.XPATH, "//li")
assert len(batch_id_list) > 0
random_number = random.randint(2, len(batch_id_list) - 1)
self.selected_batch = batch_id_list[random_number].text
self.logger.info(f"Selected Batch: {batch_id_list[random_number].text}")
batch_id_list[random_number].click()
time.sleep(5)
def check_group_no(self):
checkbox_list = self.driver.find_elements(By.XPATH, "//div[@data-testid='stCheckbox']")
assert len(checkbox_list) > 0
random_number = random.randint(0, len(checkbox_list) - 1)
random_elements = random.sample(checkbox_list, random_number)
checked_groups = ''
for checkbox in random_elements:
checkbox.click()
checked_groups = f'{checked_groups}{checkbox.text}, '
self.logger.info(f"checked Group No.: {checked_groups[:-2]}")
time.sleep(5)
def click_read_the_contracts_from_path(self):
read_the_contracts_from_path_btn = get_clickable_element(self.driver, By.XPATH, '/html/body/div[1]/div[1]/div[1]/div/div/div/section/div[1]/div/div/div/div[6]/div/button')
read_the_contracts_from_path_btn.click()
time.sleep(5)
def check_table_contain(self):
result_table = self.driver.find_element(By.XPATH, "//table[@aria-colcount='9']")
rows = result_table.find_elements(By.XPATH, ".//tbody/tr")
if len(rows) > 0:
self.logger.info(f"{len(rows)} contracts are read from batch: {self.selected_batch}")
assert True
else:
assert False
time.sleep(5)
def click_run_doczy_ai_pipeline(self):
run_doczy_ai_pipeline_btn = get_clickable_element(self.driver, By.XPATH, '/html/body/div[1]/div[1]/div[1]/div/div/div/section/div[1]/div/div/div/div[11]/div[2]/div/div/div/div/div/button')
run_doczy_ai_pipeline_btn.click()
time.sleep(3)
self.result_message = get_element(self.driver, By.XPATH, "//p[starts-with(., 'Success')]")
time.sleep(3)