update at 2025-10-08 09:18:20
This commit is contained in:
68
src/xiaohongshu/selectors.ts
Normal file
68
src/xiaohongshu/selectors.ts
Normal file
@@ -0,0 +1,68 @@
|
||||
/**
|
||||
* 文件:selectors.ts
|
||||
* 功能:集中管理小红书发布流程相关 DOM 选择器。
|
||||
*
|
||||
* 来源:用户提供的步骤截图(STEP1 / STEP21 / STEP22 / STEP31)。
|
||||
* 分组:入口 / 发布Tab / 视频 / 图文。
|
||||
* 目标:统一引用、便于维护、减少硬编码分散。
|
||||
*
|
||||
* 改版策略建议:
|
||||
* - 每个关键操作保留多个候选 selector(后续可扩展为数组兜底)。
|
||||
* - 可结合 querySelectorAll + 模糊匹配文本进一步增强稳健性。
|
||||
*/
|
||||
|
||||
export const XHS_SELECTORS = {
|
||||
// STEP 1 入口区域(选择发布类型)
|
||||
ENTRY: {
|
||||
PUBLISH_VIDEO_BUTTON: 'div.publish-video .btn',
|
||||
VIDEO_CARD_IMAGE: 'div.group-list .publish-card:nth-child(1) .image',
|
||||
IMAGE_CARD_IMAGE: 'div.group-list .publish-card:nth-child(2) .image'
|
||||
},
|
||||
|
||||
// STEP 21 发布笔记 Tab 区域(主入口)
|
||||
PUBLISH_TAB: {
|
||||
PUBLISH_VIDEO_BUTTON: 'div.publish-video .btn', // 入口按钮(同上)
|
||||
TAB_VIDEO: 'div.outarea.upload-c .creator-tab:nth-child(1)',
|
||||
TAB_IMAGE: 'div.outarea.upload-c .creator-tab:nth-child(3)',
|
||||
UPLOAD_BUTTON: 'div.outarea.upload-c .upload-content button'
|
||||
},
|
||||
|
||||
// STEP 22 上传视频并发布
|
||||
VIDEO: {
|
||||
// 上传结果 / 封面区域
|
||||
UPLOAD_SUCCESS_STAGE: '.cover-container .stage div:first-child', // 需检测包含文字“上传成功”
|
||||
|
||||
// 文本与输入区域
|
||||
TITLE_INPUT: '.titleInput .d-text',
|
||||
CONTENT_EDITOR: '#quillEditor.ql-editor',
|
||||
TOPIC_BUTTON: '#topicBtn',
|
||||
|
||||
// 扩展功能(插件 / 位置等)
|
||||
LOCATION_PLACEHOLDER: '.media-extension .plugin:nth-child(2) .d-select-placeholder',
|
||||
LOCATION_DESCRIPTION: '.media-settings>div>div:nth-child(2) .d-select-description',
|
||||
|
||||
// 发布方式(立即 / 定时)
|
||||
RADIO_IMMEDIATE: '.el-radio-group label:nth-child(1) input',
|
||||
RADIO_SCHEDULE: '.el-radio-group label:nth-child(2) input',
|
||||
SCHEDULE_TIME_INPUT: '.el-radio-group .date-picker input', // 例如:2025-06-21 15:14
|
||||
|
||||
// 发布按钮
|
||||
PUBLISH_BUTTON: '.publishBtn'
|
||||
},
|
||||
|
||||
// STEP 31 上传图片(图文)并发布
|
||||
IMAGE: {
|
||||
IMAGE_UPLOAD_ENTRY: '.publish-c .media-area-new .img-upload-area .entry',
|
||||
TITLE_INPUT: '.titleInput .d-text',
|
||||
CONTENT_EDITOR: '#quillEditor .ql-editor',
|
||||
TOPIC_BUTTON: '#topicBtn',
|
||||
LOCATION_PLACEHOLDER: '.media-extension .plugin:nth-child(2) .d-select-placeholder',
|
||||
LOCATION_DESCRIPTION: '.media-settings>div>div:nth-child(2) .d-select-description',
|
||||
RADIO_IMMEDIATE: '.el-radio-group label:nth-child(1) input',
|
||||
RADIO_SCHEDULE: '.el-radio-group label:nth-child(2) input',
|
||||
SCHEDULE_TIME_INPUT: '.el-radio-group .date-picker input',
|
||||
PUBLISH_BUTTON: '.publishBtn'
|
||||
}
|
||||
} as const;
|
||||
|
||||
export type XiaohongshuSelectorGroup = typeof XHS_SELECTORS;
|
||||
Reference in New Issue
Block a user