Try captcha automation #9

Merged
tejasshasane merged 8 commits from try-captcha-automation into development 2026-10-13 06:01:35 +02:00
3 changed files with 46 additions and 7 deletions
Showing only changes of commit 631f64b84f - Show all commits
+28 -2
View File
@@ -145,7 +145,20 @@
"trade_session_start_time": "17:00", "trade_session_start_time": "17:00",
"trade_session_end_time": "22:00" "trade_session_end_time": "22:00"
}, },
"time_sessions": {} "time_sessions": {
"ORDER_NOR": {
"start_offset_minutes": 10,
"end_time": "19:30"
},
"ORDER_EXCH": {
"start_time": "19:30",
"end_time": "19:45"
},
"TRADE": {
"start_time": "19:45",
"end_time": "19:50"
}
}
} }
}, },
"RA": { "RA": {
@@ -176,7 +189,20 @@
"delivery_offset_days": 1, "delivery_offset_days": 1,
"expiry_time": "20:30", "expiry_time": "20:30",
"type_prefix": "REC", "type_prefix": "REC",
"time_sessions": {} "time_sessions": {
"ORDER_NOR": {
"start_offset_minutes": 10,
"end_time": "19:30"
},
"ORDER_EXCH": {
"start_time": "19:30",
"end_time": "19:45"
},
"TRADE": {
"start_time": "19:45",
"end_time": "19:50"
}
}
} }
} }
} }
+1
View File
@@ -36,6 +36,7 @@ class Locator(object):
tokendeliverystartdate = "//input[@placeholder='DELIVERY_START_DATE']" tokendeliverystartdate = "//input[@placeholder='DELIVERY_START_DATE']"
tokendeliveryenddate = "//input[@placeholder='DELIVERY_END_DATE']" tokendeliveryenddate = "//input[@placeholder='DELIVERY_END_DATE']"
tokenexpirydate = "//input[@placeholder='Token Expiry Date']" tokenexpirydate = "//input[@placeholder='Token Expiry Date']"
tokentype = "//input[@name='TYPE' or @placeholder='TYPE']"
tokentradedate = "//input[@placeholder='Trade Date']" tokentradedate = "//input[@placeholder='Trade Date']"
upcordernormalstart = "//input[@name='ses3StartTime']" upcordernormalstart = "//input[@name='ses3StartTime']"
upcordernormalend = "//input[@name='ses3EndTime']" upcordernormalend = "//input[@name='ses3EndTime']"
+17 -5
View File
@@ -3,6 +3,7 @@ from datetime import datetime, timedelta
import pytest import pytest
from selenium.webdriver.common.by import By from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from tests.config_reader import get_setup_configs, parse_product_codes from tests.config_reader import get_setup_configs, parse_product_codes
from tests.helpers import ( from tests.helpers import (
@@ -133,11 +134,11 @@ def complete_time_session_edits(driver, step, token, next_day):
edit_time_session_row( edit_time_session_row(
driver, driver,
step, step,
"ORDER_NOR", "ORDER_NORMAL",
order_nor_start_time, order_nor_start_time,
order_nor_end_time order_nor_end_time
) )
edit_time_session_row(driver, step, "ORDER_EXCH", order_exch_start_time, order_exch_end_time) edit_time_session_row(driver, step, "ORDER_EXCHANGE", order_exch_start_time, order_exch_end_time)
edit_time_session_row(driver, step, "TRADE", trade_start_time, trade_end_time) edit_time_session_row(driver, step, "TRADE", trade_start_time, trade_end_time)
click_first_grid_button(driver, "Token Details") click_first_grid_button(driver, "Token Details")
@@ -150,6 +151,7 @@ def complete_time_session_edits(driver, step, token, next_day):
def complete_time_session_edits_from_saved_token(driver, step, token): def complete_time_session_edits_from_saved_token(driver, step, token):
step.click((By.XPATH, Locator.tokentimesessionbtn), "open_time_session") step.click((By.XPATH, Locator.tokentimesessionbtn), "open_time_session")
WebDriverWait(driver, 20).until(EC.url_contains("timeSessionView"))
click_first_grid_button(driver, "Time Session Details") click_first_grid_button(driver, "Time Session Details")
step.capture("open_time_session_details") step.capture("open_time_session_details")
step.capture("before_edit_order_normal") step.capture("before_edit_order_normal")
@@ -166,11 +168,11 @@ def complete_time_session_edits_from_saved_token(driver, step, token):
edit_time_session_row( edit_time_session_row(
driver, driver,
step, step,
"ORDER_NOR", "ORDER_NORMAL",
order_nor_start_time, order_nor_start_time,
order_nor_end_time order_nor_end_time
) )
edit_time_session_row(driver, step, "ORDER_EXCH", order_exch_start_time, order_exch_end_time) edit_time_session_row(driver, step, "ORDER_EXCHANGE", order_exch_start_time, order_exch_end_time)
edit_time_session_row(driver, step, "TRADE", trade_start_time, trade_end_time) edit_time_session_row(driver, step, "TRADE", trade_start_time, trade_end_time)
click_first_grid_button(driver, "Token Details") click_first_grid_button(driver, "Token Details")
@@ -291,6 +293,11 @@ def create_and_activate_token(driver, step, token):
next_day, token_expiry = get_delivery_date_and_expiry(token) next_day, token_expiry = get_delivery_date_and_expiry(token)
if token.get("product_type", "").upper() == "REC":
token_type_prefix = token.get("type_prefix", "REC")
token_type = f"{token_type_prefix}-{datetime.now().strftime('%d%m%Y')}"
step.type((By.XPATH, Locator.tokentype), token_type, f"enter_type_{product_code.lower()}")
if token.get("product_type", "").upper() == "UPC": if token.get("product_type", "").upper() == "UPC":
today = datetime.now().strftime("%d/%m/%Y") today = datetime.now().strftime("%d/%m/%Y")
if token.get("generation_mode") == "AnyDayUPC": if token.get("generation_mode") == "AnyDayUPC":
@@ -310,9 +317,14 @@ def create_and_activate_token(driver, step, token):
continue continue
type_first_visible_input(driver, locator, value) type_first_visible_input(driver, locator, value)
if token.get("generation_mode") not in ("WeeklyUPC", "MonthlyUPC"): if (
token.get("generation_mode") not in ("WeeklyUPC", "MonthlyUPC")
and token.get("product_type", "").upper() != "REC"
):
step.type((By.XPATH, Locator.tokendeliverystartdate), next_day, f"enter_delivery_start_date_{product_code.lower()}") step.type((By.XPATH, Locator.tokendeliverystartdate), next_day, f"enter_delivery_start_date_{product_code.lower()}")
step.type((By.XPATH, Locator.tokendeliveryenddate), next_day, f"enter_delivery_end_date_{product_code.lower()}") step.type((By.XPATH, Locator.tokendeliveryenddate), next_day, f"enter_delivery_end_date_{product_code.lower()}")
if token.get("generation_mode") not in ("WeeklyUPC", "MonthlyUPC"):
step.type((By.XPATH, Locator.tokenexpirydate), token_expiry, f"enter_token_expiry_date_{product_code.lower()}") step.type((By.XPATH, Locator.tokenexpirydate), token_expiry, f"enter_token_expiry_date_{product_code.lower()}")
step.click((By.XPATH, Locator.savetokenbtn), f"save_token_{product_code.lower()}") step.click((By.XPATH, Locator.savetokenbtn), f"save_token_{product_code.lower()}")