Initial commit - Selenium automation framework

This commit is contained in:
2026-09-08 09:24:02 +05:30
commit e84b7e9950
76 changed files with 7484 additions and 0 deletions
+68
View File
@@ -0,0 +1,68 @@
import os
from time import sleep
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import ElementClickInterceptedException
from .config_reader import get_step_delay_seconds
STEP_DELAY_SECONDS = get_step_delay_seconds()
class StepActions:
def __init__(self, driver, wait, test_context):
self.driver = driver
self.wait = wait
self.folder = test_context["folder"]
self.test_context = test_context
self.step = 1
self.test_context.setdefault("steps", [])
def capture(self, name):
filename = f"{self.step:02d}_{name}.png"
path = os.path.join(self.folder, filename)
self.driver.save_screenshot(path)
self.test_context["steps"].append(
{
"index": self.step,
"name": name,
"path": path,
"status": "passed",
}
)
print(f"STEP {self.step}: {name}")
self.step += 1
sleep(STEP_DELAY_SECONDS)
def click(self, locator, name):
element = self.wait.until(
EC.element_to_be_clickable(locator)
)
self.driver.execute_script("arguments[0].scrollIntoView({block: 'center'});", element)
try:
element.click()
except ElementClickInterceptedException:
self.driver.execute_script("arguments[0].click();", element)
self.capture(name)
def type(self, locator, value, name):
element = self.wait.until(
EC.visibility_of_element_located(locator)
)
element.clear()
element.send_keys(value)
self.capture(name)