diff --git a/app/test/test_bug561_wanzikun.py b/app/test/test_bug561_wanzikun.py index ee692a6..0c064e3 100644 --- a/app/test/test_bug561_wanzikun.py +++ b/app/test/test_bug561_wanzikun.py @@ -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.") \ No newline at end of file