BUG430-Eden test script #70
|
@ -0,0 +1,46 @@
|
||||||
|
Sign-Up Automation Test Script
|
||||||
|
Overview
|
||||||
|
This script automates the sign-up process for a web application using Selenium WebDriver. It tests whether form values are retained correctly if the initial sign-up attempt fails and requires modification of the student ID before resubmission.
|
||||||
|
|
||||||
|
Prerequisites
|
||||||
|
Python 3
|
||||||
|
Selenium library
|
||||||
|
Chrome WebDriver
|
||||||
|
A running instance of the web application on http://localhost:8080
|
||||||
|
|
||||||
|
Configuration
|
||||||
|
Web Application URL: Make sure the web application is running at http://localhost:8080. Adjust the URL in the script if necessary.
|
||||||
|
|
||||||
|
Update Element Locators: Ensure the IDs used in the script (signup_link, signup_form, full_name, student_id, email, password1, password2, signup_btn) match those in your web application.
|
||||||
|
|
||||||
|
Run the script:
|
||||||
|
|
||||||
|
Script Logic
|
||||||
|
|
||||||
|
Open the Login Page: The script navigates to the login page of the web application.
|
||||||
|
Click the "Sign Up" Link: It waits for the "Sign Up" link to appear and clicks it to navigate to the sign-up page.
|
||||||
|
Fill Out the Sign-Up Form: It fills out the form fields (Full Name, Student ID, Email, Password).
|
||||||
|
Submit the Form: It submits the form and waits for the result.
|
||||||
|
Check for Sign-Up Failure: If sign-up fails, it checks if form values are retained.
|
||||||
|
Modify Student ID: If the form values are retained, it modifies the student ID and resubmits the form.
|
||||||
|
Verify Retained Values: It verifies if other fields retain their values after modifying the student ID.
|
||||||
|
Print Retained Values: If the second attempt is successful, it prints the retained form values.
|
||||||
|
Close the Browser: The browser is closed at the end of the script execution.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
The script provides the following output:
|
||||||
|
|
||||||
|
Sign-Up Successful: Indicates the sign-up was successful on the first attempt.
|
||||||
|
Sign-Up Failed: Indicates the sign-up failed on the first attempt and checks for retained values.
|
||||||
|
Second Sign-Up Attempt Successful: Indicates the second sign-up attempt was successful and prints the retained values.
|
||||||
|
Second Sign-Up Attempt Failed: Indicates the second sign-up attempt also failed, suggesting further investigation is needed.
|
||||||
|
Notes
|
||||||
|
Form Field IDs: Ensure the IDs used in the script match those in your web application.
|
||||||
|
Password Fields: The script intentionally does not print password fields for security reasons.
|
||||||
|
Adjust Wait Times: Modify the wait times as needed depending on your application's response times.
|
||||||
|
Troubleshooting
|
||||||
|
Element Not Found: Verify the element IDs and update them in the script.
|
||||||
|
WebDriver Errors: Ensure the Chrome WebDriver is installed and matches your Chrome browser version.
|
||||||
|
Connection Errors: Ensure the web application is running and accessible at the specified URL.
|
||||||
|
Contributing
|
|
@ -0,0 +1,88 @@
|
||||||
|
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()
|
|
@ -0,0 +1,6 @@
|
||||||
|
Sign-up failed. Checking if form values are retained...
|
||||||
|
Second sign-up attempt failed. Further investigation needed.
|
||||||
|
Retained form values after second attempt:
|
||||||
|
Full Name: John Doe
|
||||||
|
Email: john.doe@example.com
|
||||||
|
Modified Student ID: 87654321
|
Loading…
Reference in New Issue