Files
pxil-selenium-automation/tests/setup/sessions/test_session.py
T

65 lines
1.9 KiB
Python

from datetime import datetime, timedelta
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
import pytest
from tests.step_actions import StepActions
from tests.helpers import login, select_ui_dropdown, open_trading_maintenance_page
from tests.config_reader import get_setup_configs
from tests.locators import Locator
def get_session_window(config):
session_config = config.get("setup", {}).get("session", {})
start_offset_minutes = session_config.get("start_offset_minutes", 7)
end_time = session_config.get("end_time", "20:30")
start_datetime = datetime.now() + timedelta(minutes=start_offset_minutes)
today = datetime.now().strftime("%d/%m/%Y")
return start_datetime.strftime("%d/%m/%Y %H:%M"), f"{today} {end_time}"
def create_session(driver, step, config):
open_trading_maintenance_page(driver, Locator.tradingsession)
step.capture("trading_session")
step.click((By.XPATH, Locator.addsessionbtn), "add_session")
select_ui_dropdown(driver, "meInstanceId", config["product"]["me_instance"])
step.capture("select_product")
start_date_time, end_date_time = get_session_window(config)
step.type((By.XPATH, Locator.inputstartdate), start_date_time, "start_date")
step.type((By.XPATH, Locator.inputenddate), end_date_time, "end_date")
step.click((By.XPATH, Locator.sessionsavebtn), "save_session")
@pytest.mark.session
@pytest.mark.parametrize("config", get_setup_configs("session"), ids=lambda c: c["product_name"])
def test_session(driver, test_context, config):
wait = WebDriverWait(driver, 20)
step = StepActions(driver, wait, test_context)
driver.get(config["url"])
step.capture("open_application")
login(
driver,
config["login"]["username"],
config["login"]["password"]
)
step.capture("login")
create_session(driver, step, config)