71 lines
2.6 KiB
Python
71 lines
2.6 KiB
Python
from selenium import webdriver
|
|
from selenium.webdriver.common.by import By
|
|
from selenium.webdriver.chrome.service import Service
|
|
from webdriver_manager.chrome import ChromeDriverManager
|
|
from selenium.webdriver.support.ui import WebDriverWait
|
|
from selenium.webdriver.support import expected_conditions as EC
|
|
import time
|
|
|
|
def login_to_cms():
|
|
# Set up the Selenium WebDriver
|
|
service = Service(ChromeDriverManager().install())
|
|
driver = webdriver.Chrome(service=service)
|
|
|
|
try:
|
|
# Step 1: Open the CMS login page
|
|
driver.get("https://stag-cms.unioilapps.com/login")
|
|
print("Opened login page")
|
|
|
|
# Step 2: Locate and fill username field
|
|
username_field = WebDriverWait(driver, 10).until(
|
|
EC.visibility_of_element_located((By.NAME, "username"))
|
|
)
|
|
username_field.send_keys("lbteksupport")
|
|
print("Entered username")
|
|
|
|
# Step 3: Locate and click the first Next button
|
|
next_button1 = WebDriverWait(driver, 10).until(
|
|
EC.element_to_be_clickable((By.CSS_SELECTOR, "button.ant-btn.ant-btn-primary"))
|
|
)
|
|
next_button1.click()
|
|
print("Clicked Next button")
|
|
|
|
# Step 4: Locate and fill password field on the new page
|
|
password_field = WebDriverWait(driver, 10).until(
|
|
EC.visibility_of_element_located((By.NAME, "password"))
|
|
)
|
|
password_field.send_keys("7q$!jAv9!I8HNX")
|
|
print("Entered password")
|
|
|
|
# Step 5: Locate and click the second Next button
|
|
next_button2 = WebDriverWait(driver, 10).until(
|
|
EC.element_to_be_clickable((By.CSS_SELECTOR, "button.ant-btn.ant-btn-primary"))
|
|
)
|
|
next_button2.click()
|
|
print("Clicked second Next button")
|
|
|
|
# Step 6: Verify successful login (check for My Profile)
|
|
profile_title = WebDriverWait(driver, 20).until(
|
|
EC.visibility_of_element_located((By.XPATH, "//h1[contains(text(), 'Profile')]"))
|
|
).text
|
|
assert "Profile" in profile_title, f"Login failed: Expected 'Profile', got '{profile_title}'"
|
|
print("Login test passed! Landed on My Profile")
|
|
|
|
return driver
|
|
|
|
except Exception as e:
|
|
print(f"Login failed: {e}")
|
|
driver.save_screenshot("error.png")
|
|
print("Screenshot saved as error.png for debugging")
|
|
driver.quit()
|
|
raise
|
|
|
|
if __name__ == "__main__":
|
|
try:
|
|
driver = login_to_cms()
|
|
print("Login successful, keeping browser open. Press Ctrl+C to close.")
|
|
while True:
|
|
time.sleep(1)
|
|
except KeyboardInterrupt:
|
|
print("\nUser interrupted the script. Closing the browser.")
|
|
driver.quit() |