forked from mrlan/EnglishPal
				
			更新 app/test/test_bug561_wanzikun.py
							parent
							
								
									a662626dc4
								
							
						
					
					
						commit
						7af9b4656f
					
				|  | @ -1,72 +1,69 @@ | |||
| import time | ||||
| import pytest | ||||
| from selenium.webdriver.common.by import By | ||||
| 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.webdriver import ActionChains | ||||
| 
 | ||||
| # 导入 app/test/conftest.py 中的 signup 函数 | ||||
| from app.test.conftest import signup | ||||
| 
 | ||||
| def select_text_in_article(driver): | ||||
|     elem = driver.find_element(By.CSS_SELECTOR, '#article') | ||||
|      | ||||
|     action = ActionChains(driver) | ||||
|     # 从左上角点击并按住 | ||||
|     action.move_to_element_with_offset(elem, 0, 0) | ||||
|     action.click_and_hold() | ||||
|     # 移动到右下角的某个位置(例如,右下角偏移100, 100) | ||||
|     action.move_by_offset(100, 100) | ||||
|     action.release() | ||||
|     action.perform() | ||||
| 
 | ||||
| def verify_highlight(driver): | ||||
|     # 检查是否有高亮的元素 | ||||
|     highlighted_elements = driver.execute_script(""" | ||||
|         return Array.from(document.querySelectorAll('#article mark')).map(mark => mark.innerText); | ||||
|     """) | ||||
|     print("Highlighted elements:", highlighted_elements) | ||||
|     return len(highlighted_elements) > 0 | ||||
| 
 | ||||
| def test_bug561(URL, driver): | ||||
|     try: | ||||
|         driver.maximize_window() | ||||
|         username, password = signup(URL, driver) | ||||
| 
 | ||||
|         time.sleep(3)  # 等待页面加载完成 | ||||
| 
 | ||||
|         select_text_in_article(driver) | ||||
|         if verify_highlight(driver): | ||||
|             print("Text highlighted after selection") | ||||
|         else: | ||||
|             print("No text highlighted after selection") | ||||
| 
 | ||||
|         # 点击“下一页”按钮 | ||||
|         next_button = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.ID, 'load_next_article'))) | ||||
|         next_button.click() | ||||
|         print("Clicked next article button.") | ||||
|          | ||||
|         # 等待“上一页”按钮加载完成 | ||||
|         WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.ID, 'load_pre_article'))) | ||||
|         print("Next article loaded.") | ||||
| 
 | ||||
|         # 点击“上一页”按钮 | ||||
|         prev_button = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.ID, 'load_pre_article'))) | ||||
|         prev_button.click() | ||||
|         print("Clicked previous article button.") | ||||
|          | ||||
|         # 确认高亮是否保留 | ||||
|         if verify_highlight(driver): | ||||
|             print("Highlighted text preserved after switching articles") | ||||
|         else: | ||||
|             print("Highlighted text not preserved after switching articles") | ||||
|          | ||||
|     except Exception as e: | ||||
|         print(f"Error during test: {e}") | ||||
|     finally: | ||||
|         driver.quit() | ||||
|         print("Driver closed.") | ||||
| 
 | ||||
| if __name__ == "__main__": | ||||
|     pytest.main([__file__]) | ||||
| import time | ||||
| import pytest | ||||
| from selenium.webdriver.common.by import By | ||||
| 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.webdriver import ActionChains | ||||
| 
 | ||||
| # 导入 app/test/conftest.py 中的 signup 函数 | ||||
| from app.test.conftest import signup | ||||
| 
 | ||||
| def select_text_in_article(driver): | ||||
|     elem = driver.find_element(By.CSS_SELECTOR, '#article') | ||||
|      | ||||
|     action = ActionChains(driver) | ||||
|     # 从左上角点击并按住 | ||||
|     action.move_to_element_with_offset(elem, 0, 0) | ||||
|     action.click_and_hold() | ||||
|     # 移动到右下角的某个位置(例如,右下角偏移100, 100) | ||||
|     action.move_by_offset(100, 100) | ||||
|     action.release() | ||||
|     action.perform() | ||||
| 
 | ||||
| def verify_highlight(driver): | ||||
|     # 检查是否有高亮的元素 | ||||
|     highlighted_elements = driver.execute_script(""" | ||||
|         return Array.from(document.querySelectorAll('#article mark')).map(mark => mark.innerText); | ||||
|     """) | ||||
|     print("Highlighted elements:", highlighted_elements) | ||||
|     return len(highlighted_elements) > 0 | ||||
| 
 | ||||
| def test_bug561(URL, driver): | ||||
|     try: | ||||
|         driver.maximize_window() | ||||
|         username, password = signup(URL, driver) | ||||
| 
 | ||||
|         time.sleep(3)  # 等待页面加载完成 | ||||
| 
 | ||||
|         select_text_in_article(driver) | ||||
|         if verify_highlight(driver): | ||||
|             print("Text highlighted after selection") | ||||
|         else: | ||||
|             print("No text highlighted after selection") | ||||
| 
 | ||||
|         # 点击“下一页”按钮 | ||||
|         next_button = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.ID, 'load_next_article'))) | ||||
|         next_button.click() | ||||
|         print("Clicked next article button.") | ||||
|          | ||||
|         # 等待“上一页”按钮加载完成 | ||||
|         WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.ID, 'load_pre_article'))) | ||||
|         print("Next article loaded.") | ||||
| 
 | ||||
|         # 点击“上一页”按钮 | ||||
|         prev_button = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.ID, 'load_pre_article'))) | ||||
|         prev_button.click() | ||||
|         print("Clicked previous article button.") | ||||
|          | ||||
|         # 确认高亮是否保留 | ||||
|         if verify_highlight(driver): | ||||
|             print("Highlighted text preserved after switching articles") | ||||
|         else: | ||||
|             print("Highlighted text not preserved after switching articles") | ||||
|          | ||||
|     except Exception as e: | ||||
|         print(f"Error during test: {e}") | ||||
|     finally: | ||||
|         driver.quit() | ||||
|         print("Driver closed.") | ||||
		Loading…
	
		Reference in New Issue