From 426d131f6456500517cd9228faa6958f8fdc7f87 Mon Sep 17 00:00:00 2001 From: Sunflower613 <2963707761@qq.com> Date: Mon, 15 Apr 2024 06:12:41 +0800 Subject: [PATCH] Fix Text Files --- app/templates/login.html | 4 ++ app/templates/reset.html | 4 ++ app/templates/signup.html | 4 ++ app/test/test_bug528_tangjiao.py | 107 +++++++++++++++++++++++++++++++ 4 files changed, 119 insertions(+) create mode 100644 app/test/test_bug528_tangjiao.py diff --git a/app/templates/login.html b/app/templates/login.html index b8eb118..b0806b6 100644 --- a/app/templates/login.html +++ b/app/templates/login.html @@ -15,6 +15,10 @@ alert('输入不能为空!'); return false; } + if (password.includes(' ')) { + alert('输入不能包含空格!'); + return false; + } $.post( "/login", {'username': username, 'password': password}, function (response) { diff --git a/app/templates/reset.html b/app/templates/reset.html index 3425c97..1ba46ea 100644 --- a/app/templates/reset.html +++ b/app/templates/reset.html @@ -20,6 +20,10 @@ alert('密码过于简单。(密码长度至少4位)'); return false; } + if (old_password.includes(' ') || new_password.includes(' ')) { + alert('输入不能包含空格!'); + return false; + } $.post("/reset", {'old-password': old_password, 'new-password': new_password}, function (response) { if (response.status === '1') { diff --git a/app/templates/signup.html b/app/templates/signup.html index 5b3aafe..67984fe 100644 --- a/app/templates/signup.html +++ b/app/templates/signup.html @@ -24,6 +24,10 @@ You're logged in already! Logout. alert('密码过于简单。(密码长度至少4位)'); return false; } + if (password.includes(' ') || password2.includes(' ')) { + alert('输入不能包含空格!'); + return false; + } $.post("/signup", {'username': username, 'password': password}, function (response) { if (response.status === '0') { diff --git a/app/test/test_bug528_tangjiao.py b/app/test/test_bug528_tangjiao.py new file mode 100644 index 0000000..c732009 --- /dev/null +++ b/app/test/test_bug528_tangjiao.py @@ -0,0 +1,107 @@ +import pytest +from selenium import webdriver +from selenium.webdriver.common.by import By +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 + +# 使用 Pytest 的 fixture 初始化 WebDriver 和 URL +@pytest.fixture(scope="module") +def driver(): + # 初始化WebDriver + driver = webdriver.Edge(executable_path=r'D:\codeapp\python-3.8.5\Lib\site-packages\selenium\webdriver\edge\MicrosoftWebDriver.exe') + driver.implicitly_wait(10) + yield driver # yield 语句之后的代码在测试用例执行完毕后运行 + driver.quit() # 测试用例执行完毕后关闭 WebDriver + +@pytest.fixture(scope="module") +def URL(): + return 'http://127.0.0.1:5000' + +# 测试登录页面输入密码包含空格的情况 +def test_login_password_with_space(driver, URL): + try: + driver.get(URL+"/login") + + # 输入用户名 + username_elem = driver.find_element_by_id('username') + username_elem.send_keys("test_user") + + # 输入包含空格的密码 + password_elem = driver.find_element_by_id('password') + password_elem.send_keys("password with space") + + # 提交登录表单 + elem = driver.find_element_by_class_name('btn') # 找到提交按钮 + elem.click() + + # 显式等待直到警告框出现 + 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") + + # 输入用户名 + 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") + + # 再次输入密码 + 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() + + # 显式等待直到警告框出现 + 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_reset_password_with_space(driver, URL): + try: + driver.get(URL+"/reset") + + # 输入用户名 + username_elem = driver.find_element_by_id('username') + username_elem.send_keys("test_user") + + # 输入包含空格的密码 + password_elem = driver.find_element_by_id('password') + password_elem.send_keys("password with space") + + # 提交重设密码表单 + elem = driver.find_element_by_class_name('btn') # 找到提交按钮 + elem.click() + + # 显式等待直到警告框出现 + 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))