"""Verify the web refresh button starts a job and shows actionable failure.""" from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.firefox.options import Options from selenium.webdriver.firefox.service import Service from selenium.webdriver.support.ui import WebDriverWait BASE='http://127.0.0.1:8088' options=Options();options.add_argument('--headless');options.binary_location='/snap/firefox/current/usr/lib/firefox/firefox' driver=webdriver.Firefox(options=options,service=Service('/snap/bin/geckodriver'));wait=WebDriverWait(driver,40,poll_frequency=.2) try: driver.get(BASE);wait.until(lambda d:d.find_element(By.TAG_NAME,'h1').text=='来源与目录');wait.until(lambda d:len(d.find_elements(By.CSS_SELECTOR,'.catalog-source'))==7) driver.find_element(By.XPATH,"//aside[@aria-label='内容来源']//button[.//b[.='PP资料下载中心']]").click();wait.until(lambda d:d.find_element(By.CSS_SELECTOR,'.catalog-summary strong').text=='PP资料下载中心') before=driver.find_element(By.CSS_SELECTOR,'.snapshot-timestamp').text driver.find_element(By.XPATH,"//button[.='实时刷新目录']").click();wait.until(lambda d:'实时刷新中' in d.find_element(By.CSS_SELECTOR,'.catalog-refresh-progress').text) wait.until(lambda d:'PP登录失败,请在来源链接更新凭据' in d.find_element(By.CSS_SELECTOR,'.catalog-refresh-progress').text and '旧快照仍然保留' in d.find_element(By.CSS_SELECTOR,'.catalog-refresh-progress').text) after=driver.find_element(By.CSS_SELECTOR,'.snapshot-timestamp').text;assert before==after print('pp_ui_refresh_failure_pass snapshot_preserved') finally:driver.quit()