Skip to main content
Glama

Today's Headlines MCP Server

by chemany
debug_cover_upload.py4.64 kB
#!/usr/bin/env python3 """ 调试封面图片上传功能的专用脚本 """ import sys import os import time import logging from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC # 添加项目路径 sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) # 配置日志 logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s') logger = logging.getLogger(__name__) def debug_cover_upload(): """调试封面上传区域""" try: from toutiao_mcp_server.auth import TouTiaoAuth from toutiao_mcp_server.publisher import TouTiaoPublisher # 初始化 auth = TouTiaoAuth() if not auth.check_login_status(): logger.error("未登录") return publisher = TouTiaoPublisher(auth) driver = publisher._setup_driver() publisher._transfer_cookies_to_driver(driver) # 打开发布页面 logger.info("打开发布页面...") driver.get("https://mp.toutiao.com/profile_v4/graphic/publish") time.sleep(5) # 输入标题和内容,让页面进入完整状态 logger.info("输入基本内容...") # 标题 title_textarea = WebDriverWait(driver, 10).until( EC.presence_of_element_located((By.CSS_SELECTOR, "textarea[placeholder*='请输入文章标题']")) ) driver.execute_script("arguments[0].value = '调试测试标题';", title_textarea) # 内容 content_editor = WebDriverWait(driver, 10).until( EC.presence_of_element_located((By.CSS_SELECTOR, ".ProseMirror")) ) driver.execute_script("arguments[0].innerHTML = '<p>调试测试内容</p>';", content_editor) time.sleep(3) # 开始调试封面上传区域 logger.info("开始调试封面上传区域...") # 查找所有可能的上传相关元素 print("\n=== 查找所有可能的上传元素 ===") # 1. 查找所有包含"upload"的元素 upload_elements = driver.find_elements(By.XPATH, "//*[contains(@class, 'upload')]") print(f"找到 {len(upload_elements)} 个包含'upload'的元素") for i, elem in enumerate(upload_elements[:5]): try: print(f" {i+1}. 类名: {elem.get_attribute('class')}, 标签: {elem.tag_name}, 可见: {elem.is_displayed()}") except: print(f" {i+1}. 无法获取信息") # 2. 查找所有文件输入框 file_inputs = driver.find_elements(By.CSS_SELECTOR, "input[type='file']") print(f"\n找到 {len(file_inputs)} 个文件输入框") for i, inp in enumerate(file_inputs): try: accept = inp.get_attribute('accept') or '无accept属性' print(f" {i+1}. accept: {accept}, 可见: {inp.is_displayed()}") except: print(f" {i+1}. 无法获取信息") # 3. 查找包含"+"的元素 plus_elements = driver.find_elements(By.XPATH, "//*[contains(text(), '+')]") print(f"\n找到 {len(plus_elements)} 个包含'+'的元素") for i, elem in enumerate(plus_elements[:5]): try: print(f" {i+1}. 文本: '{elem.text}', 标签: {elem.tag_name}, 可见: {elem.is_displayed()}") except: print(f" {i+1}. 无法获取信息") # 4. 查找包含"预览"的元素 preview_elements = driver.find_elements(By.XPATH, "//*[contains(text(), '预览')]") print(f"\n找到 {len(preview_elements)} 个包含'预览'的元素") for i, elem in enumerate(preview_elements): try: print(f" {i+1}. 文本: '{elem.text}', 标签: {elem.tag_name}, 可见: {elem.is_displayed()}") # 尝试找到父级容器 parent = elem.find_element(By.XPATH, "./..") print(f" 父级: {parent.tag_name}, 类名: {parent.get_attribute('class')}") except: print(f" {i+1}. 无法获取信息") print("\n=== 调试完成,浏览器将保持开启30秒供手动检查 ===") time.sleep(30) except Exception as e: logger.error(f"调试失败: {e}") finally: try: driver.quit() except: pass if __name__ == "__main__": debug_cover_upload()

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/chemany/toutiao_mcp_server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server