From 3cffb14039208d97ea7cfabc98f5bd66d82ab416 Mon Sep 17 00:00:00 2001 From: xrj <2023438860@qq.com> Date: Fri, 30 May 2025 12:38:35 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84=E4=BA=86test=5Fbug528?= =?UTF-8?q?=EF=BC=8C=E8=AE=A9=E8=BF=99=E4=B8=AAtest=E5=8F=AF=E4=BB=A5?= =?UTF-8?q?=E7=9B=B4=E6=8E=A5=E6=B5=8B=E8=AF=95=E5=AF=86=E7=A0=81=E4=B8=AD?= =?UTF-8?q?=E5=90=AB=E6=9C=89=E7=A9=BA=E6=A0=BC=E7=9A=84=E6=83=85=E5=86=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/test/test_bug528_tangjiao.py | 160 ++++++++++++++++++------------- 1 file changed, 96 insertions(+), 64 deletions(-) diff --git a/app/test/test_bug528_tangjiao.py b/app/test/test_bug528_tangjiao.py index 802423c..9ddc9fc 100644 --- a/app/test/test_bug528_tangjiao.py +++ b/app/test/test_bug528_tangjiao.py @@ -5,91 +5,123 @@ from selenium.webdriver.common.keys import Keys from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.common.exceptions import NoSuchElementException, TimeoutException - - +from selenium import webdriver +from selenium.webdriver.edge.service import Service +from selenium.webdriver.common.by import By # 测试登录页面输入密码包含空格的情况 -def test_login_password_with_space(driver, URL): - try: - driver.get(URL+"/login") +import unittest - # 输入用户名 - username_elem = driver.find_element_by_id('username') - username_elem.send_keys("test_user") +class Test_Bug528_Tangjiao(unittest.TestCase): + def test_login_password_with_space(self): + URL = 'http://127.0.0.1:5000' + service = Service(executable_path=r'D:\studey\webdrive\edge\msedgedriver.exe') + driver = webdriver.Edge(service=service) + try: + driver.get(URL + "/login") - # 输入包含空格的密码 - password_elem = driver.find_element_by_id('password') - password_elem.send_keys("password with space") + # 输入用户名 + username_elem = driver.find_element(By.ID, 'username') + username_elem.send_keys("test_user") - # 提交登录表单 - elem = driver.find_element_by_class_name('btn') # 找到提交按钮 - elem.click() + # 输入包含空格的密码 + password_elem = driver.find_element(By.ID, 'password') + password_elem.send_keys("password with space") - # 显式等待直到警告框出现 - WebDriverWait(driver, 10).until(EC.alert_is_present()) + # 提交登录表单 + elem = driver.find_element(By.ID, 'btn') # 找到提交按钮 + elem.click() - # 检查是否弹出警告框 - alert = driver.switch_to.alert - assert "输入不能包含空格!" in alert.text - except (NoSuchElementException, TimeoutException) as e: - pytest.fail("页面元素未找到或超时: {}".format(e)) + # 显式等待直到警告框出现 + WebDriverWait(driver, 10).until(EC.alert_is_present()) + # 检查是否弹出警告框 + alert = driver.switch_to.alert + assert "输入不能包含空格!" in alert.text + except (NoSuchElementException, TimeoutException) as e: + pytest.fail("页面元素未找到或超时: {}".format(e)) -# 测试注册页面输入密码包含空格的情况 + # 测试注册页面输入密码包含空格的情况 -def test_signup_password_with_space(driver, URL): - try: - driver.get(URL+"/signup") + def test_signup_password_with_space(self): + URL = 'http://127.0.0.1:5000' + service = Service(executable_path=r'D:\studey\webdrive\edge\msedgedriver.exe') + driver = webdriver.Edge(service=service) + try: + driver.get(URL + "/signup") - # 输入用户名 - username_elem = driver.find_element_by_id('username') - username_elem.send_keys("new_user") + # 输入用户名 + username_elem = driver.find_element(By.ID, 'username') + username_elem.send_keys("new_user") - # 输入包含空格的密码 - password_elem = driver.find_element_by_id('password') - password_elem.send_keys("password with space") + # 输入包含空格的密码 + password_elem = driver.find_element(By.ID, 'password') + password_elem.send_keys("password with space") - # 再次输入密码 - password2_elem = driver.find_element_by_id('password2') - password2_elem.send_keys("password with space") + # 再次输入密码 + password2_elem = driver.find_element(By.ID, 'password2') + password2_elem.send_keys("password with space") - # 提交注册表单 - elem = driver.find_element_by_class_name('btn') # 找到提交按钮 - elem.click() + # 提交注册表单 + elem = driver.find_element(By.ID, 'btn') # 找到提交按钮 + elem.click() - # 显式等待直到警告框出现 - WebDriverWait(driver, 10).until(EC.alert_is_present()) + # 显式等待直到警告框出现 + WebDriverWait(driver, 10).until(EC.alert_is_present()) - # 检查是否弹出警告框 - alert = driver.switch_to.alert - assert "输入不能包含空格!" in alert.text - except (NoSuchElementException, TimeoutException) as e: - pytest.fail("页面元素未找到或超时: {}".format(e)) + # 检查是否弹出警告框 + alert = driver.switch_to.alert + assert "输入不能包含空格!" in alert.text + except (NoSuchElementException, TimeoutException) as e: + pytest.fail("页面元素未找到或超时: {}".format(e)) + # 测试重设密码页面输入新密码包含空格的情况 + def test_reset_password_with_space(self): + URL = 'http://127.0.0.1:5000' + service = Service(executable_path=r'D:\studey\webdrive\edge\msedgedriver.exe') + driver = webdriver.Edge(service=service) -# 测试重设密码页面输入新密码包含空格的情况 + try: + # 1. 先访问登录页面 + driver.get(URL + "/login") + driver.maximize_window() -def test_reset_password_with_space(driver, URL): - try: - driver.get(URL+"/reset") + # 2. 完成登录 + WebDriverWait(driver, 10).until( + EC.presence_of_element_located((By.ID, 'username')) + ).send_keys("student6") # 替换为有效的测试用户名 - # 输入用户名 - username_elem = driver.find_element_by_id('username') - username_elem.send_keys("test_user") + driver.find_element(By.ID, 'password').send_keys("ad1258@#$") # 替换为有效的密码 + driver.find_element(By.ID, 'btn').click() - # 输入包含空格的密码 - password_elem = driver.find_element_by_id('password') - password_elem.send_keys("password with space") + # 4. 现在访问重置密码页面 + driver.get(URL + "/reset") - # 提交重设密码表单 - elem = driver.find_element_by_class_name('btn') # 找到提交按钮 - elem.click() + # 5. 确保重置页面加载完成 + WebDriverWait(driver, 10).until( + EC.presence_of_element_located((By.ID, 'old-password')) + ) - # 显式等待直到警告框出现 - WebDriverWait(driver, 10).until(EC.alert_is_present()) + # 6. 执行测试 - 输入包含空格的密码 + old_password = driver.find_element(By.ID, 'old-password') + old_password.send_keys("ad1258@#$") - # 检查是否弹出警告框 - alert = driver.switch_to.alert - assert "输入不能包含空格!" in alert.text - except (NoSuchElementException, TimeoutException) as e: - pytest.fail("页面元素未找到或超时: {}".format(e)) + # 填写其他字段(避免因其他验证失败而影响测试) + driver.find_element(By.ID, 'new-password').send_keys("new pass") + driver.find_element(By.ID, 're-new-password').send_keys("new pass") + + # 提交表单 + submit_btn = driver.find_element(By.ID, 'submit') + submit_btn.click() + + # 7. 验证预期结果 + WebDriverWait(driver, 10).until(EC.alert_is_present()) + alert = driver.switch_to.alert + assert "输入不能包含空格!" in alert.text + alert.accept() + + except Exception as e: + driver.save_screenshot("reset_error.png") + pytest.fail(f"测试失败: {e}") + finally: + driver.quit() \ No newline at end of file