forked from mrlan/EnglishPal
Compare commits
7 Commits
Bug546-Lix
...
Bug561-Wan
Author | SHA1 | Date |
---|---|---|
万梓锟 | 7af9b4656f | |
万梓锟 | a662626dc4 | |
万梓锟 | deb5fa9c54 | |
万梓锟 | b68c62a7b8 | |
万梓锟 | 4ff33b377f | |
万梓锟 | 3e3aa44087 | |
万梓锟 | 13323ed123 |
|
@ -232,6 +232,9 @@
|
||||||
update(data['today_article']);
|
update(data['today_article']);
|
||||||
check_pre(data['visited_articles']);
|
check_pre(data['visited_articles']);
|
||||||
check_next(data['result_of_generate_article']);
|
check_next(data['result_of_generate_article']);
|
||||||
|
// 在加载新文章后调用高亮函数
|
||||||
|
toggleHighlighting();
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -245,6 +248,8 @@
|
||||||
if(data['today_article']){
|
if(data['today_article']){
|
||||||
update(data['today_article']);
|
update(data['today_article']);
|
||||||
check_pre(data['visited_articles']);
|
check_pre(data['visited_articles']);
|
||||||
|
// 在加载新文章后调用高亮函数
|
||||||
|
toggleHighlighting();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
@ -0,0 +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.")
|
Loading…
Reference in New Issue