diff --git a/app/test/test_bug545_HuangHuiLing.py b/app/test/test_bug545_HuangHuiLing.py index 4ebc504..21ddeea 100644 --- a/app/test/test_bug545_HuangHuiLing.py +++ b/app/test/test_bug545_HuangHuiLing.py @@ -8,33 +8,24 @@ from selenium.webdriver.common.action_chains import ActionChains from helper import signup +def has_punctuation(s): + return any(c in string.punctuation for c in s) def select_one(driver): - question = driver.find_element(By.ID, 'question') - # 创建ActionChains对象 - actions = ActionChains(driver) - - # 模拟鼠标移动到文本元素上 - actions.move_to_element(question) - - # 模拟鼠标按下并拖动以选择文本 - actions.double_click() - actions.perform() - - # 获取选中的文本 - return driver.find_element(By.ID, 'selected-words').get_attribute('value') + elem = driver.find_element(By.ID, 'article') + essay_content = elem.text + valid_word = random.choice([word for word in essay_content.split() if len(word) >= 6 and not has_punctuation( + word) and 'font>' not in word and 'br>' not in word and 'p>' not in word]) + driver.find_element(By.ID, 'selected-words').send_keys(valid_word) + driver.find_element(By.ID, 'article').click() + return valid_word def select_two(driver): - question = driver.find_element(By.ID, 'question') - article = driver.find_element(By.ID, 'article_title') + word = driver.find_element(By.CLASS_NAME, 'highlighted') -# 创建ActionChains对象 + # 创建ActionChains对象 actions = ActionChains(driver) - actions.move_to_element(article) - actions.click() - time.sleep(1) -# 模拟鼠标移动到文本元素上 - actions.move_to_element(question) + actions.move_to_element(word) # 模拟鼠标按下并拖动以选择文本 actions.double_click() @@ -45,12 +36,6 @@ def test_selected_second_word(driver, URL): try: signup(URL, driver) selected_words = select_one(driver); - while selected_words.strip() == "": - load_next_article = driver.find_element(By.ID, "load_next_article") - action_chains = ActionChains(driver) - action_chains.click(load_next_article).perform() - time.sleep(1) - selected_words = select_one(driver) assert selected_words.strip() != "", "选中的单词被放置框中" select_two(driver) selected_second_words = driver.find_element(By.ID, 'selected-words').get_attribute('value')