96 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Python
		
	
	
		
		
			
		
	
	
			96 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Python
		
	
	
| 
								 | 
							
								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
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# 测试登录页面输入密码包含空格的情况
							 | 
						||
| 
								 | 
							
								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))
							 |