import random import string import time from selenium import webdriver from selenium.webdriver.support.wait import WebDriverWait from selenium.webdriver.support import expected_conditions as EC HOME_PAGE = "http://127.0.0.1:5000/" word = [] uname = 'lanhui' password = 'l0ve1t' def has_punctuation(s): #用于检查单词是否包含标点符号 return [c for c in s if c in string.punctuation] != [] def login(driver): driver.get(HOME_PAGE) assert 'English Pal - Learn English smartly!' in driver.page_source # 登录 login_elem = driver.find_element_by_link_text('登录') login_elem.click() username_input = driver.find_element_by_id('username') username_input.send_keys(uname) password_input = driver.find_element_by_id('password') password_input.send_keys(password) login_btn = driver.find_element_by_xpath('//button[text()="登录"]') # 找到登录按钮 login_btn.click() # 确保页面加载完 try: WebDriverWait(driver, 10).until( EC.title_is("EnglishPal Study Room for " + uname) # 替换为实际的页面标题 ) except Exception as e: print("页面加载失败:", e) driver.quit() exit() assert 'EnglishPal Study Room for ' + uname in driver.title def test_save_selected_word(): global word # 调用本地chromedriver driver = webdriver.Chrome(executable_path="C:\Program Files\Google\Chrome\Application\chromedriver.exe") try: login(driver) #点击单词添加到已选单词列表 # 获取文章内容 elem = driver.find_element_by_id('text-content') essay_content = elem.text #随机选择单词 长度不小于6个字符,并且不包含标点符号 elem = driver.find_element_by_id('selected-words') word = random.choice(essay_content.split()) while 'font>' in word or 'br>' in word or 'p>' in word or len(word) < 6 or has_punctuation(word): word = random.choice(essay_content.split()) print(type(word)) #str elem.send_keys(word) #单词输入到输入框 # 检查单词是否已成功添加到已选列表 # 再次获取