Skip to main content
Glama
selectors.ts3.56 kB
/** * Shared CSS selectors and constants for XHS operations * Centralized location for all selector definitions to improve maintainability */ /** * Common button selectors used across different services */ export const COMMON_BUTTON_SELECTORS = { CONFIRM: [ '.confirm-btn', 'button.confirm-btn', 'button[class*="confirm"]', '.ok-btn', 'button:contains("确认")', 'button:contains("确定")', 'button:contains("confirm")', 'button:contains("ok")', '[aria-label*="确认"]', '[aria-label*="确定"]', ], CANCEL: [ 'button[class*="cancel"]', '.cancel-btn', 'button:contains("取消")', 'button:contains("cancel")', '[aria-label*="取消"]', ], DELETE: [ 'button[class*="delete"]', '.delete-btn', '[class*="remove"]', '.remove-btn', 'button[title*="删除"]', 'button[title*="delete"]', '[aria-label*="删除"]', '[aria-label*="delete"]', 'button:contains("删除")', 'button:contains("delete")', ], MORE_OPTIONS: [ 'button[class*="more"]', '.more-btn', '[class*="menu"]', '.menu-btn', 'button[class*="action"]', '.action-btn', 'button[class*="option"]', '.option-btn', 'button[title*="更多"]', 'button[title*="more"]', '[aria-label*="更多"]', '[aria-label*="more"]', 'button:contains("⋯")', 'button:contains("...")', '.three-dots', '.ellipsis', ], } as const; /** * Common modal and dialog selectors */ export const COMMON_MODAL_SELECTORS = { CONFIRM: [ '.modal button[class*="confirm"]', '.dialog button[class*="confirm"]', '[class*="modal"] button[class*="confirm"]', '.ant-modal button[class*="confirm"]', '.el-dialog button[class*="confirm"]', ], CANCEL: [ '.modal button[class*="cancel"]', '.dialog button[class*="cancel"]', '[class*="modal"] button[class*="cancel"]', '.ant-modal button[class*="cancel"]', '.el-dialog button[class*="cancel"]', ], DROPDOWN_MENU: [ '.dropdown-menu', '.menu-list', '[class*="dropdown"]', '.context-menu', '.action-menu', '.options-menu', '[role="menu"]', '.popover-menu', ], } as const; /** * Common status and indicator selectors */ export const COMMON_STATUS_SELECTORS = { SUCCESS: [ '.success-message', '.publish-success', '[data-testid="publish-success"]', '.toast-success', '.upload-success', '.video-upload-success', '.video-processing-complete', '.upload-complete', ], ERROR: [ '.error-message', '.publish-error', '[data-testid="publish-error"]', '.toast-error', '.error-toast', '.upload-error', '.video-upload-error', ], PROCESSING: [ '.video-processing', '.upload-progress', '.processing-indicator', '[class*="processing"]', '[class*="uploading"]', '.progress-bar', '.upload-status', ], TOAST: ['.toast', '.message', '.notification', '[role="alert"]', '.ant-message', '.el-message'], } as const; /** * Common text patterns for status detection */ export const COMMON_TEXT_PATTERNS = { SUCCESS: ['成功', 'success', '完成'], ERROR: ['失败', 'error', '错误'], PROCESSING: ['处理中', '上传中', 'processing', 'uploading', '进度'], } as const; /** * Common file input selectors */ export const COMMON_FILE_SELECTORS = { FILE_INPUT: [ 'input[type=file]', '.upload-input', 'input[accept*="video"]', 'input[accept*="mp4"]', 'input[class*="upload"]', 'input[class*="file"]', ], } as const;

Latest Blog Posts

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/Algovate/xhs-mcp'

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