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()