LRR/test/SeleniumNeil/test_cases.py

207 lines
7.5 KiB
Python
Raw Normal View History

import re
import time
import pytest
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
@pytest.mark.generate_password_1
def test_createTA():
driver_open = webdriver.Chrome()
driver_open.maximize_window()
# Open the website
driver_open.get("http://localhost/lrr/")
username_input = driver_open.find_element('name', "user")
password_input = driver_open.find_element('name', "password")
login_button = driver_open.find_element('id', "login_btn")
# login as a TA
username_input.send_keys("lanhui@qq.com")
password_input.send_keys("nil1234H@")
# Click the login button
login_button.click()
admin_tab = driver_open.find_element('id', 'admin_tab')
admin_tab.click()
print("login sucessfully")
cte_instructor = driver_open.find_element('id', 'tab_ins_accounts')
cte_instructor.click()
print(" everything is ok here ")
t = time.localtime()
current_time = time.strftime("%H:%M:%S", t)
time.sleep(25)
def createTA(driver, TA_name, emails, password):
full_name = driver.find_element('name', 'fullname')
full_name.send_keys(TA_name)
email= driver.find_element('name', 'email')
email.send_keys(emails)
pas=driver.find_element('name', 'password')
pas.send_keys(password)
usr_type=driver.find_element('name', 'type')
usr_type.click()
click_create =driver.find_element('name', 'create_btn')
click_create.click()
try:
fullname = "testname"
email = "labtest0@fgy.com"
password = "newpasasr12345678"
createTA(driver_open,fullname,email,password) # CREATE A TA WITH FULLNAME lanhuitest email lanhuitest@test.com password lanhui12345678
get_output = WebDriverWait(driver_open, 10).until(
EC.element_to_be_clickable((By.ID, "tab_ins_accounts"))
)
get_output.click()
get_output_msg = driver_open.find_element(By.CLASS_NAME, "alert-warning")
txt_alert = get_output_msg.text
time.sleep(15)
if txt_alert.find("TA user created successfully")==0:
logout_button = driver_open.find_element(By.XPATH, "//a[contains(@class, 'nav-link') and contains(@href, 'logout.php')]")
logout_button.click()
time.sleep(15)
username_input = driver_open.find_element('name', "user")
password_input = driver_open.find_element('name', "password")
login_button = driver_open.find_element('id', "login_btn")
# login as the new TA
username_input.send_keys(email) # login with credentials of the created TA
password_input.send_keys(password)
# Click the login button
time.sleep(20)
login_button.click()
time.sleep(15)
my_course = driver_open.find_element(By.CLASS_NAME, "display-6")
email_pattern = r"Use email (\S+) as account name"
password_pattern = r"as password (\S+)\."
email_match = re.search(email_pattern, txt_alert)
password_match = re.search(password_pattern, txt_alert)
print(f"Email: {email}")
print(f"Password: {password}")
print(" WELCOME TA YOU ARE IN")
elif txt_alert.find("Email address ")==0:
print(" EMAIL ALREADY EXIST ")
else:
driver_open.quit()
try:
with open('TEST_CREATING_TA.txt', 'a') as test_output:
test_output.write(f"\n {current_time} check this message : {txt_alert}")
except Exception as e:
print(f"unexpected error: {e}")
time.sleep(10)
finally:
driver_open.quit()
@pytest.mark.generate_password_2()
def test_generate_password():
driver_open = webdriver.Chrome()
# Open the website
driver_open.get("http://localhost/lrr/")
driver_open.maximize_window()
username_input = driver_open.find_element('name', "user")
password_input = driver_open.find_element('name', "password")
login_button = driver_open.find_element('id', "login_btn")
# login as a TA
username_input.send_keys("lanhui@qq.com")
password_input.send_keys("nil1234H@")
# Click the login button
login_button.click()
admin_tab = driver_open.find_element('id', 'admin_tab')
admin_tab.click()
print("login sucessfully")
cte_instructor = driver_open.find_element('id', 'tab_ins_accounts')
cte_instructor.click()
print(" everything is ok here ")
t = time.localtime()
current_time = time.strftime("%H:%M:%S", t)
time.sleep(25)
def createTA(driver, TA_name, emails, password):
full_name = driver.find_element('name', 'fullname')
full_name.send_keys(TA_name)
email = driver.find_element('name', 'email')
email.send_keys(emails)
pas = driver.find_element('name', 'password')
pas.send_keys(password)
usr_type = driver.find_element('name', 'type')
usr_type.click()
click_create = driver.find_element('name', 'create_btn')
click_create.click()
try:
fullname = "tesame"
email = "generat@pass.com"
password = ""
createTA(driver_open, fullname, email,
password) # CREATE A TA WITH FULLNAME lanhuitest email lanhuitest@test.com password lanhui12345678
get_output = WebDriverWait(driver_open, 5).until(
EC.element_to_be_clickable((By.ID, "tab_ins_accounts"))
)
get_output.click()
get_output_msg = driver_open.find_element(By.CLASS_NAME, "alert-warning")
txt_alert = get_output_msg.text
time.sleep(20)
if txt_alert.find("TA user created successfully") == 0:
time.sleep(20)
email_pattern = r"Use email (\S+) as account name"
password_pattern = r" (\S+)\ as password."
email_match = re.search(email_pattern, txt_alert)
password_match = re.search(password_pattern, txt_alert)
if email_match and password_match:
# Extract email and password from the matches
email = email_match.group(1)
password = password_match.group(1)
logout_button = driver_open.find_element(By.XPATH,
"//a[contains(@class, 'nav-link') and contains(@href, 'logout.php')]")
logout_button.click()
time.sleep(15)
username_input = driver_open.find_element('name', "user")
password_input = driver_open.find_element('name', "password")
login_button = driver_open.find_element('id', "login_btn")
# login as the new TA
username_input.send_keys(email) # login with credentials of the created TA
password_input.send_keys(password)
# Click the login button
time.sleep(20)
login_button.click()
time.sleep(20)
my_course = driver_open.find_element(By.CLASS_NAME, "display-6")
print(f"WELCOME {fullname} YOU ARE IN")
elif txt_alert.find("Email address ") == 0:
print(" EMAIL ALREADY EXIST ")
else:
driver_open.quit()
try:
with open('TEST_CREATING_TA.txt', 'a') as test_output:
test_output.write(f"\n {current_time} check this message : {txt_alert}")
except Exception as e:
print(f"unexpected error: {e}")
time.sleep(10)
finally:
driver_open.quit()