LRR/test/SeleniumEden/test.py

88 lines
3.4 KiB
Python

import time # Import time module for waiting
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
# New instance of the Chrome driver
driver = webdriver.Chrome()
try:
# Step 1: Open the login page
driver.get("http://localhost:8080/lrr/lrr/admin.php") # Replace with your actual login page URL
# Step 2: Wait for the login page to fully load and locate the "Sign Up" link
sign_up_link = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.ID, "signup_link"))
)
# Step 3: Click the "Sign Up" link to navigate to the sign-up page
sign_up_link.click()
# Step 4: Wait for the sign-up page to fully load
WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.ID, "signup_form"))
)
# Step 5: Fill out the sign-up form
driver.find_element(By.ID, "full_name").send_keys("John Doe")
driver.find_element(By.ID, "student_id").send_keys("12345678")
driver.find_element(By.ID, "email").send_keys("john.doe@example.com")
driver.find_element(By.ID, "password1").send_keys("Password123!")
driver.find_element(By.ID, "password2").send_keys("Password123!")
# Step 6: Submit the sign-up form
driver.find_element(By.ID, "signup_btn").click()
# Step 7: Wait for the sign-up result
WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.TAG_NAME, "body"))
)
# Check if sign-up failed
if "alert-danger" in driver.page_source:
print("Sign-up failed. Checking if form values are retained...")
# Wait for a few seconds (adjust as needed)
time.sleep(3)
# Modify the student ID again
driver.find_element(By.ID, "student_id").clear()
driver.find_element(By.ID, "student_id").send_keys("87654321")
# Verify if the other fields retain their values
assert driver.find_element(By.ID, "full_name").get_attribute("value") == "John Doe"
assert driver.find_element(By.ID, "email").get_attribute("value") == "john.doe@example.com"
assert driver.find_element(By.ID, "password1").get_attribute("value") == ""
assert driver.find_element(By.ID, "password2").get_attribute("value") == ""
# Resubmit the form
driver.find_element(By.ID, "signup_btn").click()
# Wait for the result again
WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.TAG_NAME, "body"))
)
# Check for success or failure after second attempt
if "alert-danger" in driver.page_source:
print("Second sign-up attempt failed. Further investigation needed.")
# Print the retained values
print("Retained form values after second attempt:")
print("Full Name:", driver.find_element(By.ID, "full_name").get_attribute("value"))
print("Email:", driver.find_element(By.ID, "email").get_attribute("value"))
# Password fields might be intentionally cleared, so they won't be printed here
print("Modified Student ID:", driver.find_element(By.ID, "student_id").get_attribute("value"))
else:
print("Second sign-up attempt successful!")
else:
print("Sign-up successful!")
finally:
# Close the browser
driver.quit()