button-manifest.json 58 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258
  1. {
  2. "pages/index/index": {
  3. "path": "pages/index/index",
  4. "needLogin": false,
  5. "buttons": [
  6. {
  7. "name": "搜索栏",
  8. "selectors": [".search-bar"],
  9. "type": "safe",
  10. "expected": "url-contains:pages/search",
  11. "login_required": false
  12. },
  13. {
  14. "name": "通知铃铛",
  15. "selectors": [".notif-bell"],
  16. "type": "safe",
  17. "expected": "new-element:.bell-badge",
  18. "login_required": false
  19. },
  20. {
  21. "name": "最近收听卡片",
  22. "selectors": [".recent-card"],
  23. "type": "safe",
  24. "expected": "url-contains:pages/player",
  25. "login_required": true
  26. },
  27. {
  28. "name": "创建我的第一本有声书",
  29. "selectors": [".onboarding-btn"],
  30. "type": "safe",
  31. "expected": "url-contains:pages/book-generator/interactive",
  32. "login_required": false
  33. },
  34. {
  35. "name": "快速模板卡片",
  36. "selectors": [".template-card"],
  37. "type": "safe",
  38. "expected": "url-contains:pages/book-generator/interactive",
  39. "login_required": false
  40. },
  41. {
  42. "name": "书籍封面",
  43. "selectors": [".album-card"],
  44. "type": "safe",
  45. "expected": "url-contains:pages/album",
  46. "login_required": false
  47. }
  48. ]
  49. },
  50. "pages/create/index": {
  51. "path": "pages/create/index",
  52. "needLogin": false,
  53. "buttons": [
  54. {
  55. "name": "清除搜索文本",
  56. "selectors": [".clear-btn"],
  57. "type": "safe",
  58. "expected": "none",
  59. "login_required": false
  60. },
  61. {
  62. "name": "上传文档",
  63. "selectors": [".tool-row .tool-btn:nth-child(1)"],
  64. "type": "safe",
  65. "expected": "none",
  66. "login_required": false
  67. },
  68. {
  69. "name": "AI 生成",
  70. "selectors": [".tool-row .tool-btn:nth-child(2)"],
  71. "type": "safe",
  72. "expected": "url-contains:pages/ai-generate",
  73. "login_required": false
  74. },
  75. {
  76. "name": "粘贴文本",
  77. "selectors": [".tool-row .tool-btn:nth-child(3)"],
  78. "type": "safe",
  79. "expected": "toast:已填充",
  80. "login_required": false
  81. },
  82. {
  83. "name": "清空文本",
  84. "selectors": [".tool-row .tool-btn:nth-child(4)"],
  85. "type": "safe",
  86. "expected": "none",
  87. "login_required": false
  88. },
  89. {
  90. "name": "移除已上传文档",
  91. "selectors": [".doc-remove-btn"],
  92. "type": "safe",
  93. "expected": "none",
  94. "login_required": false
  95. },
  96. {
  97. "name": "选择专辑",
  98. "selectors": [".album-selector"],
  99. "type": "safe",
  100. "expected": "new-element:.bottom-panel",
  101. "login_required": false
  102. },
  103. {
  104. "name": "情感选择 chip",
  105. "selectors": [".emotion-chip"],
  106. "type": "safe",
  107. "expected": "none",
  108. "login_required": false
  109. },
  110. {
  111. "name": "开始生成",
  112. "selectors": [".generate-btn-tab"],
  113. "type": "safe",
  114. "expected": "none",
  115. "login_required": false
  116. },
  117. {
  118. "name": "音色 Tab",
  119. "selectors": [".tab-toolbar .tab-item:nth-child(1)"],
  120. "type": "safe",
  121. "expected": "new-element:.voice-panel-dark",
  122. "login_required": false
  123. },
  124. {
  125. "name": "参数 Tab",
  126. "selectors": [".tab-toolbar .tab-item:nth-child(2)"],
  127. "type": "safe",
  128. "expected": "new-element:.bottom-panel",
  129. "login_required": false
  130. },
  131. {
  132. "name": "音色卡片",
  133. "selectors": [".voice-card"],
  134. "type": "safe",
  135. "expected": "none",
  136. "login_required": false
  137. },
  138. {
  139. "name": "试听音色",
  140. "selectors": [".voice-card-play"],
  141. "type": "safe",
  142. "expected": "toast:试听已播放",
  143. "login_required": false
  144. },
  145. {
  146. "name": "关闭音色面板",
  147. "selectors": [".panel-close-bar"],
  148. "type": "safe",
  149. "expected": "none",
  150. "login_required": false
  151. },
  152. {
  153. "name": "关闭参数面板",
  154. "selectors": [".panel-close"],
  155. "type": "safe",
  156. "expected": "none",
  157. "login_required": false
  158. },
  159. {
  160. "name": "选择专辑项",
  161. "selectors": [".album-item"],
  162. "type": "safe",
  163. "expected": "none",
  164. "login_required": false
  165. },
  166. {
  167. "name": "新建专辑按钮",
  168. "selectors": [".panel-action-btn"],
  169. "type": "safe",
  170. "expected": "new-element:.bottom-panel",
  171. "login_required": false
  172. },
  173. {
  174. "name": "创建专辑",
  175. "selectors": [".panel-action-btn"],
  176. "type": "safe",
  177. "expected": "toast:专辑创建成功",
  178. "login_required": false
  179. },
  180. {
  181. "name": "开通会员",
  182. "selectors": [".quota-btn.primary"],
  183. "type": "safe",
  184. "expected": "url-contains:pages/member",
  185. "login_required": false
  186. },
  187. {
  188. "name": "稍后再说",
  189. "selectors": [".quota-btn.secondary"],
  190. "type": "safe",
  191. "expected": "none",
  192. "login_required": false
  193. }
  194. ]
  195. },
  196. "pages/history/index": {
  197. "path": "pages/history/index",
  198. "needLogin": false,
  199. "buttons": [
  200. {
  201. "name": "清空搜索",
  202. "selectors": [".clear-btn"],
  203. "type": "safe",
  204. "expected": "none",
  205. "login_required": false
  206. },
  207. {
  208. "name": "进入编辑模式",
  209. "selectors": [".edit-btn"],
  210. "type": "safe",
  211. "expected": "new-element:.edit-actions",
  212. "login_required": false
  213. },
  214. {
  215. "name": "全选/取消全选",
  216. "selectors": [".edit-actions .action-btn:nth-child(1)"],
  217. "type": "safe",
  218. "expected": "none",
  219. "login_required": false
  220. },
  221. {
  222. "name": "批量下载",
  223. "selectors": [".edit-actions .action-btn.download"],
  224. "type": "safe",
  225. "expected": "toast:下载完成",
  226. "login_required": false
  227. },
  228. {
  229. "name": "批量删除",
  230. "selectors": [".edit-actions .action-btn.delete"],
  231. "type": "danger",
  232. "expected": "toast:删除成功",
  233. "login_required": false
  234. },
  235. {
  236. "name": "取消编辑",
  237. "selectors": [".edit-actions .action-btn.cancel"],
  238. "type": "safe",
  239. "expected": "none",
  240. "login_required": false
  241. },
  242. {
  243. "name": "时间标签筛选",
  244. "selectors": [".tab-item"],
  245. "type": "safe",
  246. "expected": "none",
  247. "login_required": false
  248. },
  249. {
  250. "name": "切换列表/聚合",
  251. "selectors": [".group-toggle"],
  252. "type": "safe",
  253. "expected": "none",
  254. "login_required": false
  255. },
  256. {
  257. "name": "分组标题",
  258. "selectors": [".group-header"],
  259. "type": "safe",
  260. "expected": "url-contains:pages/book-generator/detail",
  261. "login_required": false
  262. },
  263. {
  264. "name": "音频卡片",
  265. "selectors": [".audio-card"],
  266. "type": "safe",
  267. "expected": "url-contains:pages/book-generator/detail",
  268. "login_required": false
  269. },
  270. {
  271. "name": "发布音频",
  272. "selectors": [".publish-btn"],
  273. "type": "safe",
  274. "expected": "url-contains:pages/publish",
  275. "login_required": true
  276. }
  277. ]
  278. },
  279. "pages/mine/index": {
  280. "path": "pages/mine/index",
  281. "needLogin": true,
  282. "buttons": [
  283. {
  284. "name": "查看更多历史",
  285. "selectors": [".recent-more"],
  286. "type": "safe",
  287. "expected": "url-contains:pages/history",
  288. "login_required": true
  289. },
  290. {
  291. "name": "最近创作项",
  292. "selectors": [".recent-item"],
  293. "type": "safe",
  294. "expected": "url-contains:pages/history",
  295. "login_required": true
  296. },
  297. {
  298. "name": "升级会员卡片",
  299. "selectors": [".upgrade-card"],
  300. "type": "safe",
  301. "expected": "url-contains:pages/member",
  302. "login_required": true
  303. },
  304. {
  305. "name": "功能菜单项",
  306. "selectors": [".menu-item"],
  307. "type": "safe",
  308. "expected": "url-contains:pages/",
  309. "login_required": true
  310. },
  311. {
  312. "name": "退出登录",
  313. "selectors": [".logout-btn"],
  314. "type": "danger",
  315. "expected": "toast:已退出登录",
  316. "login_required": true
  317. }
  318. ]
  319. },
  320. "pages/billing/index": {
  321. "path": "pages/billing/index",
  322. "needLogin": false,
  323. "buttons": []
  324. },
  325. "pages/token-packs/index": {
  326. "path": "pages/token-packs/index",
  327. "needLogin": false,
  328. "buttons": [
  329. {
  330. "name": "数量减少",
  331. "selectors": [".qty-btn:first-child"],
  332. "type": "safe",
  333. "expected": "none",
  334. "login_required": false
  335. },
  336. {
  337. "name": "数量增加",
  338. "selectors": [".qty-btn:last-child"],
  339. "type": "safe",
  340. "expected": "none",
  341. "login_required": false
  342. },
  343. {
  344. "name": "立即购买",
  345. "selectors": [".buy-btn"],
  346. "type": "safe",
  347. "expected": "url-contains:pages/payment-confirm",
  348. "login_required": true
  349. }
  350. ]
  351. },
  352. "pages/member/index": {
  353. "path": "pages/member/index",
  354. "needLogin": true,
  355. "buttons": [
  356. {
  357. "name": "返回",
  358. "selectors": [".nav-btn"],
  359. "type": "safe",
  360. "expected": "none",
  361. "login_required": true
  362. },
  363. {
  364. "name": "选择套餐",
  365. "selectors": [".plan-card"],
  366. "type": "safe",
  367. "expected": "none",
  368. "login_required": true
  369. },
  370. {
  371. "name": "立即订阅",
  372. "selectors": [".subscribe-btn"],
  373. "type": "safe",
  374. "expected": "url-contains:pages/payment-confirm",
  375. "login_required": true
  376. }
  377. ]
  378. },
  379. "pages/player/index": {
  380. "path": "pages/player/index",
  381. "needLogin": false,
  382. "buttons": [
  383. {
  384. "name": "返回",
  385. "selectors": [".nav-bar .nav-btn:first-child"],
  386. "type": "safe",
  387. "expected": "none",
  388. "login_required": false
  389. },
  390. {
  391. "name": "睡眠定时徽章",
  392. "selectors": [".sleep-timer-badge"],
  393. "type": "safe",
  394. "expected": "new-element:.rate-picker",
  395. "login_required": false
  396. },
  397. {
  398. "name": "睡眠定时按钮",
  399. "selectors": [".nav-actions .nav-btn:nth-child(1)"],
  400. "type": "safe",
  401. "expected": "new-element:.rate-picker",
  402. "login_required": false
  403. },
  404. {
  405. "name": "歌词切换",
  406. "selectors": [".nav-actions .nav-btn:nth-child(2)"],
  407. "type": "safe",
  408. "expected": "none",
  409. "login_required": false
  410. },
  411. {
  412. "name": "播放速度",
  413. "selectors": [".control-btn.control-text"],
  414. "type": "safe",
  415. "expected": "new-element:.rate-picker",
  416. "login_required": false
  417. },
  418. {
  419. "name": "下载音频",
  420. "selectors": [".control-btn:not(.share-btn) .control-icon"],
  421. "type": "safe",
  422. "expected": "none",
  423. "login_required": false
  424. },
  425. {
  426. "name": "上一首",
  427. "selectors": [".controls-center .control-btn:nth-child(1)"],
  428. "type": "safe",
  429. "expected": "none",
  430. "login_required": false
  431. },
  432. {
  433. "name": "播放/暂停",
  434. "selectors": [".play-btn"],
  435. "type": "safe",
  436. "expected": "none",
  437. "login_required": false
  438. },
  439. {
  440. "name": "下一首",
  441. "selectors": [".controls-center .control-btn:nth-child(3)"],
  442. "type": "safe",
  443. "expected": "none",
  444. "login_required": false
  445. },
  446. {
  447. "name": "收藏",
  448. "selectors": [".controls-side:last-child .control-btn:nth-child(1)"],
  449. "type": "safe",
  450. "expected": "toast:已收藏",
  451. "login_required": true
  452. },
  453. {
  454. "name": "分享",
  455. "selectors": [".control-btn.share-btn"],
  456. "type": "safe",
  457. "expected": "toast:链接已复制",
  458. "login_required": true
  459. },
  460. {
  461. "name": "切换播放模式",
  462. "selectors": [".playlist-header-right"],
  463. "type": "safe",
  464. "expected": "none",
  465. "login_required": false
  466. },
  467. {
  468. "name": "播放列表项",
  469. "selectors": [".playlist-item"],
  470. "type": "safe",
  471. "expected": "none",
  472. "login_required": false
  473. },
  474. {
  475. "name": "速度选项",
  476. "selectors": [".rate-item"],
  477. "type": "safe",
  478. "expected": "none",
  479. "login_required": false
  480. },
  481. {
  482. "name": "睡眠选项",
  483. "selectors": [".rate-content .rate-item"],
  484. "type": "safe",
  485. "expected": "toast:睡眠定时已到",
  486. "login_required": false
  487. },
  488. {
  489. "name": "取消睡眠定时",
  490. "selectors": [".sleep-timer-cancel"],
  491. "type": "danger",
  492. "expected": "toast:已取消睡眠定时",
  493. "login_required": false
  494. }
  495. ]
  496. },
  497. "pages/login/index": {
  498. "path": "pages/login/index",
  499. "needLogin": false,
  500. "buttons": [
  501. {
  502. "name": "获取验证码",
  503. "selectors": [".code-btn"],
  504. "type": "safe",
  505. "expected": "toast:验证码已发送",
  506. "login_required": false
  507. },
  508. {
  509. "name": "登录",
  510. "selectors": [".login-btn"],
  511. "type": "safe",
  512. "expected": "toast:登录成功",
  513. "login_required": false
  514. }
  515. ]
  516. },
  517. "pages/login/wechat-entry": {
  518. "path": "pages/login/wechat-entry",
  519. "needLogin": false,
  520. "buttons": []
  521. },
  522. "pages/favorites/index": {
  523. "path": "pages/favorites/index",
  524. "needLogin": true,
  525. "buttons": [
  526. {
  527. "name": "返回",
  528. "selectors": [".nav-btn"],
  529. "type": "safe",
  530. "expected": "none",
  531. "login_required": true
  532. },
  533. {
  534. "name": "收藏项播放",
  535. "selectors": [".item"],
  536. "type": "safe",
  537. "expected": "url-contains:pages/player",
  538. "login_required": true
  539. },
  540. {
  541. "name": "移除收藏",
  542. "selectors": [".item-action"],
  543. "type": "danger",
  544. "expected": "toast:已取消收藏",
  545. "login_required": true
  546. }
  547. ]
  548. },
  549. "pages/search/index": {
  550. "path": "pages/search/index",
  551. "needLogin": false,
  552. "buttons": [
  553. {
  554. "name": "搜索按钮",
  555. "selectors": [".search-btn"],
  556. "type": "safe",
  557. "expected": "new-element:.result-item",
  558. "login_required": false
  559. },
  560. {
  561. "name": "清空历史",
  562. "selectors": [".clear-btn"],
  563. "type": "danger",
  564. "expected": "none",
  565. "login_required": false
  566. },
  567. {
  568. "name": "历史标签",
  569. "selectors": [".history-tag"],
  570. "type": "safe",
  571. "expected": "none",
  572. "login_required": false
  573. },
  574. {
  575. "name": "删除单条历史",
  576. "selectors": [".delete-icon"],
  577. "type": "danger",
  578. "expected": "none",
  579. "login_required": false
  580. },
  581. {
  582. "name": "热搜词",
  583. "selectors": [".hot-tag"],
  584. "type": "safe",
  585. "expected": "none",
  586. "login_required": false
  587. },
  588. {
  589. "name": "搜索结果项",
  590. "selectors": [".result-item"],
  591. "type": "safe",
  592. "expected": "url-contains:pages/album",
  593. "login_required": false
  594. }
  595. ]
  596. },
  597. "pages/album/index": {
  598. "path": "pages/album/index",
  599. "needLogin": false,
  600. "buttons": [
  601. {
  602. "name": "返回",
  603. "selectors": [".nav-btn:first-child"],
  604. "type": "safe",
  605. "expected": "none",
  606. "login_required": false
  607. },
  608. {
  609. "name": "分享专辑",
  610. "selectors": [".nav-actions .nav-btn:nth-child(1)"],
  611. "type": "safe",
  612. "expected": "new-element:.share-panel",
  613. "login_required": false
  614. },
  615. {
  616. "name": "重命名专辑",
  617. "selectors": [".nav-actions .nav-btn:nth-child(2)"],
  618. "type": "safe",
  619. "expected": "new-element:.modal",
  620. "login_required": false
  621. },
  622. {
  623. "name": "收藏/已收藏",
  624. "selectors": [".action-btn:not(.primary)"],
  625. "type": "safe",
  626. "expected": "toast:收藏成功",
  627. "login_required": true
  628. },
  629. {
  630. "name": "播放全部",
  631. "selectors": [".action-btn.primary"],
  632. "type": "safe",
  633. "expected": "toast:暂无可播放",
  634. "login_required": false
  635. },
  636. {
  637. "name": "章节项",
  638. "selectors": [".audio-item"],
  639. "type": "safe",
  640. "expected": "url-contains:pages/player",
  641. "login_required": false
  642. },
  643. {
  644. "name": "视频播放按钮",
  645. "selectors": [".video-play-btn"],
  646. "type": "safe",
  647. "expected": "new-element:.video-modal",
  648. "login_required": false
  649. },
  650. {
  651. "name": "重命名章节",
  652. "selectors": [".menu-item:nth-child(1)"],
  653. "type": "safe",
  654. "expected": "new-element:.modal",
  655. "login_required": false
  656. },
  657. {
  658. "name": "移动章节",
  659. "selectors": [".menu-item:nth-child(2)"],
  660. "type": "safe",
  661. "expected": "new-element:.modal",
  662. "login_required": false
  663. },
  664. {
  665. "name": "弹窗取消",
  666. "selectors": [".modal-btn.cancel"],
  667. "type": "safe",
  668. "expected": "none",
  669. "login_required": false
  670. },
  671. {
  672. "name": "弹窗确定",
  673. "selectors": [".modal-btn.confirm"],
  674. "type": "safe",
  675. "expected": "toast:成功",
  676. "login_required": false
  677. },
  678. {
  679. "name": "视频弹窗关闭",
  680. "selectors": [".video-modal-close"],
  681. "type": "safe",
  682. "expected": "none",
  683. "login_required": false
  684. },
  685. {
  686. "name": "专辑选择项",
  687. "selectors": [".album-select-item"],
  688. "type": "safe",
  689. "expected": "none",
  690. "login_required": false
  691. }
  692. ]
  693. },
  694. "pages/albums/index": {
  695. "path": "pages/albums/index",
  696. "needLogin": false,
  697. "buttons": [
  698. {
  699. "name": "返回",
  700. "selectors": [".nav-btn:first-child"],
  701. "type": "safe",
  702. "expected": "none",
  703. "login_required": false
  704. },
  705. {
  706. "name": "专辑卡片",
  707. "selectors": [".album-card"],
  708. "type": "safe",
  709. "expected": "url-contains:pages/album",
  710. "login_required": false
  711. }
  712. ]
  713. },
  714. "pages/book-generator/index": {
  715. "path": "pages/book-generator/index",
  716. "needLogin": false,
  717. "buttons": [
  718. {
  719. "name": "返回",
  720. "selectors": [".nav-left .nav-btn"],
  721. "type": "safe",
  722. "expected": "none",
  723. "login_required": false
  724. },
  725. {
  726. "name": "Tab 切换按钮",
  727. "selectors": [".nav-btn.nav-btn:not(.nav-left)"],
  728. "type": "safe",
  729. "expected": "none",
  730. "login_required": false
  731. },
  732. {
  733. "name": "创建新书籍",
  734. "selectors": [".create-card"],
  735. "type": "safe",
  736. "expected": "url-contains:pages/book-generator/create",
  737. "login_required": true
  738. },
  739. {
  740. "name": "书籍标题行",
  741. "selectors": [".book-header"],
  742. "type": "safe",
  743. "expected": "url-contains:pages/book-generator/detail",
  744. "login_required": true
  745. },
  746. {
  747. "name": "编辑书籍图标",
  748. "selectors": [".edit-icon"],
  749. "type": "safe",
  750. "expected": "url-contains:pages/book-generator/create",
  751. "login_required": true
  752. },
  753. {
  754. "name": "生成内容/停止生成",
  755. "selectors": [".primary-btn"],
  756. "type": "safe",
  757. "expected": "toast:已启动",
  758. "login_required": true
  759. },
  760. {
  761. "name": "公开/取消公开",
  762. "selectors": [".publish-btn"],
  763. "type": "safe",
  764. "expected": "toast:已公开到首页",
  765. "login_required": true
  766. },
  767. {
  768. "name": "更多操作",
  769. "selectors": [".more-btn"],
  770. "type": "safe",
  771. "expected": "new-element:uni-page-action-sheet",
  772. "login_required": true
  773. }
  774. ]
  775. },
  776. "pages/book-generator/create": {
  777. "path": "pages/book-generator/create",
  778. "needLogin": true,
  779. "buttons": [
  780. {
  781. "name": "返回",
  782. "selectors": [".nav-left .back-icon"],
  783. "type": "safe",
  784. "expected": "none",
  785. "login_required": true
  786. },
  787. {
  788. "name": "示例提示词",
  789. "selectors": [".example-chip"],
  790. "type": "safe",
  791. "expected": "none",
  792. "login_required": true
  793. },
  794. {
  795. "name": "清空描述",
  796. "selectors": [".clear-btn"],
  797. "type": "safe",
  798. "expected": "none",
  799. "login_required": true
  800. },
  801. {
  802. "name": "AI 智能推荐配置",
  803. "selectors": [".btn-ai-recommend"],
  804. "type": "safe",
  805. "expected": "toast:AI 推荐完成",
  806. "login_required": true
  807. },
  808. {
  809. "name": "规模卡片",
  810. "selectors": [".scale-card"],
  811. "type": "safe",
  812. "expected": "none",
  813. "login_required": true
  814. },
  815. {
  816. "name": "展开全部规模",
  817. "selectors": [".show-more-btn"],
  818. "type": "safe",
  819. "expected": "none",
  820. "login_required": true
  821. },
  822. {
  823. "name": "面向人群 chip",
  824. "selectors": [".chip-section .chip"],
  825. "type": "safe",
  826. "expected": "none",
  827. "login_required": true
  828. },
  829. {
  830. "name": "知识难度 chip",
  831. "selectors": [".chip-sm"],
  832. "type": "safe",
  833. "expected": "none",
  834. "login_required": true
  835. },
  836. {
  837. "name": "书籍类型 chip",
  838. "selectors": [".chip-section:nth-child(4) .chip"],
  839. "type": "safe",
  840. "expected": "none",
  841. "login_required": true
  842. },
  843. {
  844. "name": "大纲层级 chip",
  845. "selectors": [".chip-xs"],
  846. "type": "safe",
  847. "expected": "none",
  848. "login_required": true
  849. },
  850. {
  851. "name": "高级定制折叠",
  852. "selectors": [".collapsible"],
  853. "type": "safe",
  854. "expected": "none",
  855. "login_required": true
  856. },
  857. {
  858. "name": "快速模板",
  859. "selectors": [".chip-template"],
  860. "type": "safe",
  861. "expected": "toast:已应用模板",
  862. "login_required": true
  863. },
  864. {
  865. "name": "写作风格",
  866. "selectors": [".chip-xs:not(.chip-template)"],
  867. "type": "safe",
  868. "expected": "none",
  869. "login_required": true
  870. },
  871. {
  872. "name": "行业领域",
  873. "selectors": [".chip-section:nth-of-type(3) .chip"],
  874. "type": "safe",
  875. "expected": "none",
  876. "login_required": true
  877. },
  878. {
  879. "name": "特殊要求",
  880. "selectors": [".chip-section:nth-of-type(4) .chip"],
  881. "type": "safe",
  882. "expected": "none",
  883. "login_required": true
  884. },
  885. {
  886. "name": "配置标签修改",
  887. "selectors": [".config-tag"],
  888. "type": "safe",
  889. "expected": "none",
  890. "login_required": true
  891. },
  892. {
  893. "name": "保存修改/开始创建",
  894. "selectors": [".btn-create"],
  895. "type": "safe",
  896. "expected": "none",
  897. "login_required": true
  898. },
  899. {
  900. "name": "切换到交互模式",
  901. "selectors": [".bottom-link"],
  902. "type": "safe",
  903. "expected": "url-contains:pages/book-generator/interactive",
  904. "login_required": true
  905. }
  906. ]
  907. },
  908. "pages/book-generator/interactive": {
  909. "path": "pages/book-generator/interactive",
  910. "needLogin": true,
  911. "buttons": [
  912. {
  913. "name": "返回",
  914. "selectors": [".nav-left"],
  915. "type": "safe",
  916. "expected": "none",
  917. "login_required": true
  918. },
  919. {
  920. "name": "切换到一键模式",
  921. "selectors": [".mode-switch"],
  922. "type": "safe",
  923. "expected": "url-contains:pages/book-generator/create",
  924. "login_required": true
  925. },
  926. {
  927. "name": "AI 智能推荐",
  928. "selectors": [".btn-ai-recommend"],
  929. "type": "safe",
  930. "expected": "toast:推荐",
  931. "login_required": true
  932. },
  933. {
  934. "name": "规模 chip",
  935. "selectors": [".scale-chip"],
  936. "type": "safe",
  937. "expected": "none",
  938. "login_required": true
  939. },
  940. {
  941. "name": "目标人群 chip",
  942. "selectors": [".chip-group .chip"],
  943. "type": "safe",
  944. "expected": "none",
  945. "login_required": true
  946. },
  947. {
  948. "name": "书籍类型 chip",
  949. "selectors": [".chip-section:nth-child(2) .chip"],
  950. "type": "safe",
  951. "expected": "none",
  952. "login_required": true
  953. },
  954. {
  955. "name": "大纲层级 chip",
  956. "selectors": [".chip-section:nth-child(3) .chip"],
  957. "type": "safe",
  958. "expected": "none",
  959. "login_required": true
  960. },
  961. {
  962. "name": "取消按钮",
  963. "selectors": [".btn-cancel"],
  964. "type": "safe",
  965. "expected": "none",
  966. "login_required": true
  967. },
  968. {
  969. "name": "下一步:AI分析",
  970. "selectors": [".btn-primary"],
  971. "type": "safe",
  972. "expected": "none",
  973. "login_required": true
  974. },
  975. {
  976. "name": "使用此方案,生成大纲",
  977. "selectors": [".btn-group .btn-primary"],
  978. "type": "safe",
  979. "expected": "none",
  980. "login_required": true
  981. },
  982. {
  983. "name": "重新分析",
  984. "selectors": [".btn-secondary"],
  985. "type": "safe",
  986. "expected": "none",
  987. "login_required": true
  988. },
  989. {
  990. "name": "返回修改",
  991. "selectors": [".btn-group .btn-cancel"],
  992. "type": "safe",
  993. "expected": "none",
  994. "login_required": true
  995. },
  996. {
  997. "name": "删除章节",
  998. "selectors": [".btn-delete-sm"],
  999. "type": "danger",
  1000. "expected": "none",
  1001. "login_required": true
  1002. },
  1003. {
  1004. "name": "上移章节",
  1005. "selectors": [".btn-row-sm .btn-move-sm:nth-child(2)"],
  1006. "type": "safe",
  1007. "expected": "none",
  1008. "login_required": true
  1009. },
  1010. {
  1011. "name": "下移章节",
  1012. "selectors": [".btn-row-sm .btn-move-sm:nth-child(3)"],
  1013. "type": "safe",
  1014. "expected": "none",
  1015. "login_required": true
  1016. },
  1017. {
  1018. "name": "添加章节",
  1019. "selectors": [".btn-add-chapter"],
  1020. "type": "safe",
  1021. "expected": "none",
  1022. "login_required": true
  1023. },
  1024. {
  1025. "name": "重新生成大纲",
  1026. "selectors": [".btn-secondary"],
  1027. "type": "safe",
  1028. "expected": "none",
  1029. "login_required": true
  1030. },
  1031. {
  1032. "name": "确认开始写内容",
  1033. "selectors": [".btn-group .btn-primary"],
  1034. "type": "safe",
  1035. "expected": "none",
  1036. "login_required": true
  1037. },
  1038. {
  1039. "name": "章节折叠",
  1040. "selectors": [".chapter-header"],
  1041. "type": "safe",
  1042. "expected": "none",
  1043. "login_required": true
  1044. },
  1045. {
  1046. "name": "移除避免模式",
  1047. "selectors": [".tag-remove"],
  1048. "type": "safe",
  1049. "expected": "none",
  1050. "login_required": true
  1051. },
  1052. {
  1053. "name": "添加避免模式",
  1054. "selectors": [".tag-add"],
  1055. "type": "safe",
  1056. "expected": "none",
  1057. "login_required": true
  1058. },
  1059. {
  1060. "name": "查看书籍详情",
  1061. "selectors": [".btn-primary"],
  1062. "type": "safe",
  1063. "expected": "url-contains:pages/book-generator/detail",
  1064. "login_required": true
  1065. }
  1066. ]
  1067. },
  1068. "pages/book-generator/detail": {
  1069. "path": "pages/book-generator/detail",
  1070. "needLogin": true,
  1071. "buttons": [
  1072. {
  1073. "name": "返回",
  1074. "selectors": [".nav-left .back-icon"],
  1075. "type": "safe",
  1076. "expected": "none",
  1077. "login_required": true
  1078. },
  1079. {
  1080. "name": "编辑",
  1081. "selectors": [".nav-edit-btn"],
  1082. "type": "safe",
  1083. "expected": "url-contains:pages/book-generator/create",
  1084. "login_required": true
  1085. },
  1086. {
  1087. "name": "重新生成(失败时)",
  1088. "selectors": [".retry-btn"],
  1089. "type": "safe",
  1090. "expected": "none",
  1091. "login_required": true
  1092. },
  1093. {
  1094. "name": "继续生成",
  1095. "selectors": [".retry-btn:first-of-type"],
  1096. "type": "safe",
  1097. "expected": "toast:已开始续生成",
  1098. "login_required": true
  1099. },
  1100. {
  1101. "name": "整本重新生成",
  1102. "selectors": [".retry-btn:last-of-type"],
  1103. "type": "danger",
  1104. "expected": "toast:LangGraph 生成已启动",
  1105. "login_required": true
  1106. },
  1107. {
  1108. "name": "进入批量模式",
  1109. "selectors": [".edit-btn"],
  1110. "type": "safe",
  1111. "expected": "new-element:.batch-actions-bar",
  1112. "login_required": true
  1113. },
  1114. {
  1115. "name": "章节折叠行",
  1116. "selectors": [".content-tree-row.chapter-row"],
  1117. "type": "safe",
  1118. "expected": "url-contains:pages/book-generator/chapter-detail",
  1119. "login_required": true
  1120. },
  1121. {
  1122. "name": "节折叠行",
  1123. "selectors": [".content-tree-row.section-row"],
  1124. "type": "safe",
  1125. "expected": "url-contains:pages/book-generator/chapter-detail",
  1126. "login_required": true
  1127. },
  1128. {
  1129. "name": "小节折叠行",
  1130. "selectors": [".content-tree-row.subsection-row"],
  1131. "type": "safe",
  1132. "expected": "url-contains:pages/book-generator/chapter-detail",
  1133. "login_required": true
  1134. },
  1135. {
  1136. "name": "前言",
  1137. "selectors": [".content-item.foreword"],
  1138. "type": "safe",
  1139. "expected": "new-element:.uni-modal",
  1140. "login_required": true
  1141. },
  1142. {
  1143. "name": "后记",
  1144. "selectors": [".content-item.afterword"],
  1145. "type": "safe",
  1146. "expected": "new-element:.uni-modal",
  1147. "login_required": true
  1148. },
  1149. {
  1150. "name": "搜索框清空",
  1151. "selectors": [".search-clear"],
  1152. "type": "safe",
  1153. "expected": "none",
  1154. "login_required": true
  1155. },
  1156. {
  1157. "name": "展开/折叠全部",
  1158. "selectors": [".toggle-btn"],
  1159. "type": "safe",
  1160. "expected": "none",
  1161. "login_required": true
  1162. },
  1163. {
  1164. "name": "全选",
  1165. "selectors": [".batch-btn:first-child"],
  1166. "type": "safe",
  1167. "expected": "none",
  1168. "login_required": true
  1169. },
  1170. {
  1171. "name": "批量重新生成",
  1172. "selectors": [".batch-btn.regenerate"],
  1173. "type": "safe",
  1174. "expected": "toast:已提交批量生成任务",
  1175. "login_required": true
  1176. },
  1177. {
  1178. "name": "批量删除",
  1179. "selectors": [".batch-btn.delete"],
  1180. "type": "danger",
  1181. "expected": "toast:删除成功",
  1182. "login_required": true
  1183. },
  1184. {
  1185. "name": "取消批量",
  1186. "selectors": [".batch-btn.cancel"],
  1187. "type": "safe",
  1188. "expected": "none",
  1189. "login_required": true
  1190. },
  1191. {
  1192. "name": "开始生成/重新生成内容",
  1193. "selectors": [".action-btn.langgraph-btn"],
  1194. "type": "safe",
  1195. "expected": "toast:LangGraph 生成已启动",
  1196. "login_required": true
  1197. },
  1198. {
  1199. "name": "生成全部音频",
  1200. "selectors": [".action-btn.audio-btn"],
  1201. "type": "safe",
  1202. "expected": "toast:已启动",
  1203. "login_required": true
  1204. },
  1205. {
  1206. "name": "升级套餐",
  1207. "selectors": [".action-btn.upgrade-btn"],
  1208. "type": "safe",
  1209. "expected": "url-contains:pages/subscription",
  1210. "login_required": true
  1211. },
  1212. {
  1213. "name": "返回书籍列表",
  1214. "selectors": [".action-btn.full-width"],
  1215. "type": "safe",
  1216. "expected": "none",
  1217. "login_required": true
  1218. }
  1219. ]
  1220. },
  1221. "pages/book-generator/chapter-detail": {
  1222. "path": "pages/book-generator/chapter-detail",
  1223. "needLogin": true,
  1224. "buttons": [
  1225. {
  1226. "name": "返回",
  1227. "selectors": [".nav-left .back-icon"],
  1228. "type": "safe",
  1229. "expected": "none",
  1230. "login_required": true
  1231. },
  1232. {
  1233. "name": "编辑章节",
  1234. "selectors": [".edit-toggle-btn"],
  1235. "type": "safe",
  1236. "expected": "new-element:.edit-mode",
  1237. "login_required": true
  1238. },
  1239. {
  1240. "name": "重新生成章节",
  1241. "selectors": [".regenerate-btn"],
  1242. "type": "safe",
  1243. "expected": "toast:重新生成任务已启动",
  1244. "login_required": true
  1245. },
  1246. {
  1247. "name": "取消编辑",
  1248. "selectors": [".edit-btn.cancel"],
  1249. "type": "safe",
  1250. "expected": "none",
  1251. "login_required": true
  1252. },
  1253. {
  1254. "name": "保存编辑",
  1255. "selectors": [".edit-btn.save"],
  1256. "type": "safe",
  1257. "expected": "toast:保存成功",
  1258. "login_required": true
  1259. },
  1260. {
  1261. "name": "重试加载",
  1262. "selectors": [".retry-btn"],
  1263. "type": "safe",
  1264. "expected": "none",
  1265. "login_required": true
  1266. },
  1267. {
  1268. "name": "生成音频",
  1269. "selectors": [".action-btn.audio-btn"],
  1270. "type": "safe",
  1271. "expected": "toast:音频生成任务已启动",
  1272. "login_required": true
  1273. },
  1274. {
  1275. "name": "升级套餐(章节页)",
  1276. "selectors": [".action-btn.upgrade-btn"],
  1277. "type": "safe",
  1278. "expected": "url-contains:pages/subscription",
  1279. "login_required": true
  1280. },
  1281. {
  1282. "name": "音频失败重试",
  1283. "selectors": [".action-btn.audio-btn"],
  1284. "type": "safe",
  1285. "expected": "toast:音频生成任务已启动",
  1286. "login_required": true
  1287. },
  1288. {
  1289. "name": "生成视频",
  1290. "selectors": [".action-btn.video-btn"],
  1291. "type": "safe",
  1292. "expected": "toast:视频生成任务已启动",
  1293. "login_required": true
  1294. },
  1295. {
  1296. "name": "视频失败重试",
  1297. "selectors": [".action-btn.video-btn:nth-child(2)"],
  1298. "type": "safe",
  1299. "expected": "toast:视频生成任务已启动",
  1300. "login_required": true
  1301. },
  1302. {
  1303. "name": "播放音频",
  1304. "selectors": [".play-btn:not(.video-play-btn)"],
  1305. "type": "safe",
  1306. "expected": "url-contains:pages/player",
  1307. "login_required": true
  1308. },
  1309. {
  1310. "name": "重新生成音频",
  1311. "selectors": [".audio-player .regenerate-btn"],
  1312. "type": "safe",
  1313. "expected": "toast:音频重新生成任务已启动",
  1314. "login_required": true
  1315. },
  1316. {
  1317. "name": "播放视频",
  1318. "selectors": [".play-btn.video-play-btn"],
  1319. "type": "safe",
  1320. "expected": "new-element:.video-modal",
  1321. "login_required": true
  1322. },
  1323. {
  1324. "name": "下载音频",
  1325. "selectors": [".download-btn.audio-download"],
  1326. "type": "safe",
  1327. "expected": "none",
  1328. "login_required": true
  1329. },
  1330. {
  1331. "name": "下载视频",
  1332. "selectors": [".download-btn.video-download"],
  1333. "type": "safe",
  1334. "expected": "none",
  1335. "login_required": true
  1336. },
  1337. {
  1338. "name": "视频弹窗关闭",
  1339. "selectors": [".video-modal-close"],
  1340. "type": "safe",
  1341. "expected": "none",
  1342. "login_required": true
  1343. },
  1344. {
  1345. "name": "上一章",
  1346. "selectors": [".nav-btn.prev-btn"],
  1347. "type": "safe",
  1348. "expected": "url-contains:pages/book-generator/chapter-detail",
  1349. "login_required": true
  1350. },
  1351. {
  1352. "name": "下一章",
  1353. "selectors": [".nav-btn.next-btn"],
  1354. "type": "safe",
  1355. "expected": "url-contains:pages/book-generator/chapter-detail",
  1356. "login_required": true
  1357. }
  1358. ]
  1359. },
  1360. "pages/ai-generate/index": {
  1361. "path": "pages/ai-generate/index",
  1362. "needLogin": false,
  1363. "buttons": [
  1364. {
  1365. "name": "返回",
  1366. "selectors": [".nav-left .back-icon"],
  1367. "type": "safe",
  1368. "expected": "none",
  1369. "login_required": false
  1370. },
  1371. {
  1372. "name": "开始生成",
  1373. "selectors": [".generate-btn"],
  1374. "type": "safe",
  1375. "expected": "toast:生成成功",
  1376. "login_required": false
  1377. },
  1378. {
  1379. "name": "使用此内容",
  1380. "selectors": [".action-btn.primary"],
  1381. "type": "safe",
  1382. "expected": "toast:已保存",
  1383. "login_required": false
  1384. },
  1385. {
  1386. "name": "复制内容",
  1387. "selectors": [".result-actions .action-btn:nth-child(2)"],
  1388. "type": "safe",
  1389. "expected": "toast:已复制到剪贴板",
  1390. "login_required": false
  1391. },
  1392. {
  1393. "name": "重新生成",
  1394. "selectors": [".result-actions .action-btn:nth-child(3)"],
  1395. "type": "safe",
  1396. "expected": "toast:生成成功",
  1397. "login_required": false
  1398. }
  1399. ]
  1400. },
  1401. "pages/video-generator/index": {
  1402. "path": "pages/video-generator/index",
  1403. "needLogin": false,
  1404. "buttons": [
  1405. {
  1406. "name": "返回",
  1407. "selectors": [".nav-left .back-icon"],
  1408. "type": "safe",
  1409. "expected": "none",
  1410. "login_required": false
  1411. },
  1412. {
  1413. "name": "创建新视频",
  1414. "selectors": [".create-card"],
  1415. "type": "safe",
  1416. "expected": "url-contains:pages/video-generator/create",
  1417. "login_required": false
  1418. },
  1419. {
  1420. "name": "项目卡片",
  1421. "selectors": [".project-card"],
  1422. "type": "safe",
  1423. "expected": "url-contains:pages/video-generator/",
  1424. "login_required": false
  1425. },
  1426. {
  1427. "name": "预览",
  1428. "selectors": [".action-btn.primary"],
  1429. "type": "safe",
  1430. "expected": "url-contains:pages/video-generator/preview",
  1431. "login_required": false
  1432. },
  1433. {
  1434. "name": "重试生成",
  1435. "selectors": [".action-btn.warning"],
  1436. "type": "safe",
  1437. "expected": "toast:开始生成",
  1438. "login_required": false
  1439. },
  1440. {
  1441. "name": "删除视频项目",
  1442. "selectors": [".action-btn.danger"],
  1443. "type": "danger",
  1444. "expected": "toast:删除成功",
  1445. "login_required": false
  1446. },
  1447. {
  1448. "name": "加载更多",
  1449. "selectors": [".load-more"],
  1450. "type": "safe",
  1451. "expected": "none",
  1452. "login_required": false
  1453. }
  1454. ]
  1455. },
  1456. "pages/video-generator/create": {
  1457. "path": "pages/video-generator/create",
  1458. "needLogin": false,
  1459. "buttons": [
  1460. {
  1461. "name": "返回",
  1462. "selectors": [".nav-left .back-icon"],
  1463. "type": "safe",
  1464. "expected": "none",
  1465. "login_required": false
  1466. },
  1467. {
  1468. "name": "保存",
  1469. "selectors": [".save-btn"],
  1470. "type": "safe",
  1471. "expected": "toast:保存成功",
  1472. "login_required": false
  1473. },
  1474. {
  1475. "name": "移除图片",
  1476. "selectors": [".image-remove"],
  1477. "type": "safe",
  1478. "expected": "none",
  1479. "login_required": false
  1480. },
  1481. {
  1482. "name": "添加图片",
  1483. "selectors": [".upload-area:nth-of-type(1)"],
  1484. "type": "safe",
  1485. "expected": "none",
  1486. "login_required": false
  1487. },
  1488. {
  1489. "name": "更换音频",
  1490. "selectors": [".audio-remove"],
  1491. "type": "safe",
  1492. "expected": "none",
  1493. "login_required": false
  1494. },
  1495. {
  1496. "name": "添加音频",
  1497. "selectors": [".upload-area:nth-of-type(2)"],
  1498. "type": "safe",
  1499. "expected": "none",
  1500. "login_required": false
  1501. },
  1502. {
  1503. "name": "选择视频比例",
  1504. "selectors": [".ratio-option"],
  1505. "type": "safe",
  1506. "expected": "none",
  1507. "login_required": false
  1508. },
  1509. {
  1510. "name": "开始生成视频",
  1511. "selectors": [".generate-btn"],
  1512. "type": "safe",
  1513. "expected": "url-contains:pages/video-generator/preview",
  1514. "login_required": false
  1515. },
  1516. {
  1517. "name": "上一步",
  1518. "selectors": [".nav-btn.prev"],
  1519. "type": "safe",
  1520. "expected": "none",
  1521. "login_required": false
  1522. },
  1523. {
  1524. "name": "下一步",
  1525. "selectors": [".nav-btn.next"],
  1526. "type": "safe",
  1527. "expected": "none",
  1528. "login_required": false
  1529. }
  1530. ]
  1531. },
  1532. "pages/video-generator/preview": {
  1533. "path": "pages/video-generator/preview",
  1534. "needLogin": false,
  1535. "buttons": [
  1536. {
  1537. "name": "返回",
  1538. "selectors": [".nav-left .back-icon"],
  1539. "type": "safe",
  1540. "expected": "none",
  1541. "login_required": false
  1542. },
  1543. {
  1544. "name": "下载视频",
  1545. "selectors": [".action-btn.download"],
  1546. "type": "safe",
  1547. "expected": "none",
  1548. "login_required": false
  1549. },
  1550. {
  1551. "name": "分享视频",
  1552. "selectors": [".action-btn.share"],
  1553. "type": "safe",
  1554. "expected": "none",
  1555. "login_required": false
  1556. },
  1557. {
  1558. "name": "发布到平台",
  1559. "selectors": [".action-btn.publish"],
  1560. "type": "safe",
  1561. "expected": "url-contains:pages/publish",
  1562. "login_required": true
  1563. },
  1564. {
  1565. "name": "重新生成",
  1566. "selectors": [".action-btn.regenerate"],
  1567. "type": "safe",
  1568. "expected": "toast:重新生成成功",
  1569. "login_required": false
  1570. }
  1571. ]
  1572. },
  1573. "pages/text-to-video/index": {
  1574. "path": "pages/text-to-video/index",
  1575. "needLogin": false,
  1576. "buttons": [
  1577. {
  1578. "name": "返回",
  1579. "selectors": [".nav-left .back-icon"],
  1580. "type": "safe",
  1581. "expected": "none",
  1582. "login_required": false
  1583. },
  1584. {
  1585. "name": "示例文本",
  1586. "selectors": [".example-item"],
  1587. "type": "safe",
  1588. "expected": "none",
  1589. "login_required": false
  1590. },
  1591. {
  1592. "name": "设置面板折叠",
  1593. "selectors": [".card-title"],
  1594. "type": "safe",
  1595. "expected": "none",
  1596. "login_required": false
  1597. },
  1598. {
  1599. "name": "视频比例",
  1600. "selectors": [".ratio-tag"],
  1601. "type": "safe",
  1602. "expected": "none",
  1603. "login_required": false
  1604. },
  1605. {
  1606. "name": "语速",
  1607. "selectors": [".seg-item"],
  1608. "type": "safe",
  1609. "expected": "none",
  1610. "login_required": false
  1611. },
  1612. {
  1613. "name": "预览分镜",
  1614. "selectors": [".preview-btn"],
  1615. "type": "safe",
  1616. "expected": "toast:预览失败",
  1617. "login_required": false
  1618. },
  1619. {
  1620. "name": "开始生成视频",
  1621. "selectors": [".generate-btn"],
  1622. "type": "safe",
  1623. "expected": "toast:提交任务",
  1624. "login_required": false
  1625. },
  1626. {
  1627. "name": "下载视频(结果)",
  1628. "selectors": [".result-actions .action-btn.primary"],
  1629. "type": "safe",
  1630. "expected": "none",
  1631. "login_required": false
  1632. },
  1633. {
  1634. "name": "再来一个",
  1635. "selectors": [".result-actions .action-btn:not(.primary)"],
  1636. "type": "safe",
  1637. "expected": "none",
  1638. "login_required": false
  1639. },
  1640. {
  1641. "name": "重新尝试(失败)",
  1642. "selectors": [".error-section .action-btn"],
  1643. "type": "safe",
  1644. "expected": "none",
  1645. "login_required": false
  1646. }
  1647. ]
  1648. },
  1649. "pages/settings/index": {
  1650. "path": "pages/settings/index",
  1651. "needLogin": true,
  1652. "buttons": [
  1653. {
  1654. "name": "返回",
  1655. "selectors": [".nav-btn:first-child"],
  1656. "type": "safe",
  1657. "expected": "none",
  1658. "login_required": true
  1659. },
  1660. {
  1661. "name": "默认音色",
  1662. "selectors": [".settings-item:nth-child(1)"],
  1663. "type": "safe",
  1664. "expected": "new-element:.picker-modal",
  1665. "login_required": true
  1666. },
  1667. {
  1668. "name": "主题",
  1669. "selectors": [".settings-item:has(.item-icon:contains('🎨'))"],
  1670. "type": "safe",
  1671. "expected": "new-element:.picker-modal",
  1672. "login_required": true
  1673. },
  1674. {
  1675. "name": "清理缓存",
  1676. "selectors": [".settings-item:has(.item-icon:contains('🗑️'))"],
  1677. "type": "danger",
  1678. "expected": "toast:缓存已清理",
  1679. "login_required": true
  1680. },
  1681. {
  1682. "name": "主题选择项",
  1683. "selectors": [".picker-item"],
  1684. "type": "safe",
  1685. "expected": "none",
  1686. "login_required": true
  1687. },
  1688. {
  1689. "name": "音色选择项",
  1690. "selectors": [".voice-list .picker-item"],
  1691. "type": "safe",
  1692. "expected": "none",
  1693. "login_required": true
  1694. }
  1695. ]
  1696. },
  1697. "pages/orders/index": {
  1698. "path": "pages/orders/index",
  1699. "needLogin": true,
  1700. "buttons": [
  1701. {
  1702. "name": "返回",
  1703. "selectors": [".nav-btn:first-child"],
  1704. "type": "safe",
  1705. "expected": "none",
  1706. "login_required": true
  1707. },
  1708. {
  1709. "name": "去订阅",
  1710. "selectors": [".subscribe-btn"],
  1711. "type": "safe",
  1712. "expected": "url-contains:pages/member",
  1713. "login_required": true
  1714. },
  1715. {
  1716. "name": "上一页",
  1717. "selectors": [".pagination .page-btn:first-child"],
  1718. "type": "safe",
  1719. "expected": "none",
  1720. "login_required": true
  1721. },
  1722. {
  1723. "name": "下一页",
  1724. "selectors": [".pagination .page-btn:last-child"],
  1725. "type": "safe",
  1726. "expected": "none",
  1727. "login_required": true
  1728. }
  1729. ]
  1730. },
  1731. "pages/publish/index": {
  1732. "path": "pages/publish/index",
  1733. "needLogin": true,
  1734. "buttons": [
  1735. {
  1736. "name": "返回",
  1737. "selectors": [".nav-left .back-icon"],
  1738. "type": "safe",
  1739. "expected": "none",
  1740. "login_required": true
  1741. },
  1742. {
  1743. "name": "选择平台",
  1744. "selectors": [".platform-item"],
  1745. "type": "safe",
  1746. "expected": "toast:请先绑定账号",
  1747. "login_required": true
  1748. },
  1749. {
  1750. "name": "打开登录页面",
  1751. "selectors": [".login-btn"],
  1752. "type": "safe",
  1753. "expected": "none",
  1754. "login_required": true
  1755. },
  1756. {
  1757. "name": "如何获取 Cookie",
  1758. "selectors": [".help-btn"],
  1759. "type": "safe",
  1760. "expected": "new-element:uni-modal",
  1761. "login_required": true
  1762. },
  1763. {
  1764. "name": "确认绑定",
  1765. "selectors": [".bind-section .btn-primary"],
  1766. "type": "safe",
  1767. "expected": "toast:绑定成功",
  1768. "login_required": true
  1769. },
  1770. {
  1771. "name": "重新绑定",
  1772. "selectors": [".btn-text"],
  1773. "type": "safe",
  1774. "expected": "none",
  1775. "login_required": true
  1776. },
  1777. {
  1778. "name": "移除标签",
  1779. "selectors": [".tag-remove"],
  1780. "type": "safe",
  1781. "expected": "none",
  1782. "login_required": true
  1783. },
  1784. {
  1785. "name": "推荐标签",
  1786. "selectors": [".rec-tag"],
  1787. "type": "safe",
  1788. "expected": "none",
  1789. "login_required": true
  1790. },
  1791. {
  1792. "name": "发布",
  1793. "selectors": [".btn-publish"],
  1794. "type": "safe",
  1795. "expected": "toast:发布成功",
  1796. "login_required": true
  1797. },
  1798. {
  1799. "name": "关闭结果弹窗",
  1800. "selectors": [".result-modal .btn-secondary"],
  1801. "type": "safe",
  1802. "expected": "none",
  1803. "login_required": true
  1804. },
  1805. {
  1806. "name": "查看作品",
  1807. "selectors": [".result-modal .btn-primary"],
  1808. "type": "safe",
  1809. "expected": "none",
  1810. "login_required": true
  1811. }
  1812. ]
  1813. },
  1814. "pages/playlists/index": {
  1815. "path": "pages/playlists/index",
  1816. "needLogin": true,
  1817. "buttons": [
  1818. {
  1819. "name": "返回",
  1820. "selectors": [".nav-btn:first-child"],
  1821. "type": "safe",
  1822. "expected": "none",
  1823. "login_required": true
  1824. },
  1825. {
  1826. "name": "新建播放列表",
  1827. "selectors": [".nav-btn:nth-child(2)"],
  1828. "type": "safe",
  1829. "expected": "new-element:.modal",
  1830. "login_required": true
  1831. },
  1832. {
  1833. "name": "播放列表卡片",
  1834. "selectors": [".playlist-card"],
  1835. "type": "safe",
  1836. "expected": "url-contains:pages/playlists/detail",
  1837. "login_required": true
  1838. },
  1839. {
  1840. "name": "取消创建",
  1841. "selectors": [".modal-btn.cancel"],
  1842. "type": "safe",
  1843. "expected": "none",
  1844. "login_required": true
  1845. },
  1846. {
  1847. "name": "确认创建",
  1848. "selectors": [".modal-btn.confirm"],
  1849. "type": "safe",
  1850. "expected": "toast:创建成功",
  1851. "login_required": true
  1852. }
  1853. ]
  1854. },
  1855. "pages/playlists/detail": {
  1856. "path": "pages/playlists/detail",
  1857. "needLogin": true,
  1858. "buttons": [
  1859. {
  1860. "name": "返回",
  1861. "selectors": [".nav-btn:first-child"],
  1862. "type": "safe",
  1863. "expected": "none",
  1864. "login_required": true
  1865. },
  1866. {
  1867. "name": "播放全部",
  1868. "selectors": [".action-btn.primary"],
  1869. "type": "safe",
  1870. "expected": "url-contains:pages/player",
  1871. "login_required": true
  1872. },
  1873. {
  1874. "name": "音频项",
  1875. "selectors": [".audio-item"],
  1876. "type": "safe",
  1877. "expected": "url-contains:pages/player",
  1878. "login_required": true
  1879. },
  1880. {
  1881. "name": "移除音频项",
  1882. "selectors": [".audio-delete"],
  1883. "type": "danger",
  1884. "expected": "toast:移除成功",
  1885. "login_required": true
  1886. }
  1887. ]
  1888. },
  1889. "pages/drafts/index": {
  1890. "path": "pages/drafts/index",
  1891. "needLogin": true,
  1892. "buttons": [
  1893. {
  1894. "name": "返回",
  1895. "selectors": [".nav-btn:first-child"],
  1896. "type": "safe",
  1897. "expected": "none",
  1898. "login_required": true
  1899. },
  1900. {
  1901. "name": "草稿卡片(恢复)",
  1902. "selectors": [".draft-card"],
  1903. "type": "safe",
  1904. "expected": "toast:已恢复",
  1905. "login_required": true
  1906. },
  1907. {
  1908. "name": "删除草稿",
  1909. "selectors": [".action-btn.delete"],
  1910. "type": "danger",
  1911. "expected": "toast:删除成功",
  1912. "login_required": true
  1913. }
  1914. ]
  1915. },
  1916. "pages/webview/index": {
  1917. "path": "pages/webview/index",
  1918. "needLogin": false,
  1919. "buttons": [
  1920. {
  1921. "name": "返回",
  1922. "selectors": [".nav-left .back-icon"],
  1923. "type": "safe",
  1924. "expected": "none",
  1925. "login_required": false
  1926. }
  1927. ]
  1928. },
  1929. "pages/payment-result/index": {
  1930. "path": "pages/payment-result/index",
  1931. "needLogin": false,
  1932. "buttons": [
  1933. {
  1934. "name": "返回",
  1935. "selectors": [".nav-left .back-icon"],
  1936. "type": "safe",
  1937. "expected": "none",
  1938. "login_required": false
  1939. },
  1940. {
  1941. "name": "返回会员中心",
  1942. "selectors": [".btn-primary"],
  1943. "type": "safe",
  1944. "expected": "url-contains:pages/mine",
  1945. "login_required": false
  1946. },
  1947. {
  1948. "name": "返回上页",
  1949. "selectors": [".btn-secondary"],
  1950. "type": "safe",
  1951. "expected": "none",
  1952. "login_required": false
  1953. }
  1954. ]
  1955. },
  1956. "pages/payment-confirm/index": {
  1957. "path": "pages/payment-confirm/index",
  1958. "needLogin": false,
  1959. "buttons": [
  1960. {
  1961. "name": "返回",
  1962. "selectors": [".nav-left .back-icon"],
  1963. "type": "safe",
  1964. "expected": "none",
  1965. "login_required": false
  1966. },
  1967. {
  1968. "name": "选择支付宝",
  1969. "selectors": [".payment-method:nth-child(1)"],
  1970. "type": "safe",
  1971. "expected": "none",
  1972. "login_required": false
  1973. },
  1974. {
  1975. "name": "选择微信支付",
  1976. "selectors": [".payment-method:nth-child(2)"],
  1977. "type": "safe",
  1978. "expected": "none",
  1979. "login_required": false
  1980. },
  1981. {
  1982. "name": "取消支付",
  1983. "selectors": [".btn-secondary"],
  1984. "type": "safe",
  1985. "expected": "none",
  1986. "login_required": false
  1987. },
  1988. {
  1989. "name": "确认支付",
  1990. "selectors": [".btn-primary"],
  1991. "type": "danger",
  1992. "expected": "url-contains:pages/payment-result",
  1993. "login_required": false
  1994. }
  1995. ]
  1996. },
  1997. "pages/alipay-qrcode/index": {
  1998. "path": "pages/alipay-qrcode/index",
  1999. "needLogin": false,
  2000. "buttons": [
  2001. {
  2002. "name": "返回",
  2003. "selectors": [".nav-left .back-icon"],
  2004. "type": "safe",
  2005. "expected": "none",
  2006. "login_required": false
  2007. },
  2008. {
  2009. "name": "重新生成二维码",
  2010. "selectors": [".retry-btn"],
  2011. "type": "safe",
  2012. "expected": "toast:重新生成",
  2013. "login_required": false
  2014. },
  2015. {
  2016. "name": "取消支付",
  2017. "selectors": [".btn-secondary"],
  2018. "type": "safe",
  2019. "expected": "none",
  2020. "login_required": false
  2021. },
  2022. {
  2023. "name": "我已支付",
  2024. "selectors": [".btn-primary"],
  2025. "type": "safe",
  2026. "expected": "toast:暂未收到",
  2027. "login_required": false
  2028. }
  2029. ]
  2030. },
  2031. "pages/invite/index": {
  2032. "path": "pages/invite/index",
  2033. "needLogin": true,
  2034. "buttons": [
  2035. {
  2036. "name": "复制邀请码",
  2037. "selectors": [".copy-btn"],
  2038. "type": "safe",
  2039. "expected": "toast:邀请码已复制",
  2040. "login_required": true
  2041. },
  2042. {
  2043. "name": "分享邀请链接",
  2044. "selectors": [".action-btn.primary"],
  2045. "type": "safe",
  2046. "expected": "toast:分享成功",
  2047. "login_required": true
  2048. },
  2049. {
  2050. "name": "复制链接",
  2051. "selectors": [".invite-actions .action-btn:not(.primary)"],
  2052. "type": "safe",
  2053. "expected": "toast:链接已复制",
  2054. "login_required": true
  2055. },
  2056. {
  2057. "name": "测试分享得积分",
  2058. "selectors": [".share-reward-btn"],
  2059. "type": "safe",
  2060. "expected": "toast:积分",
  2061. "login_required": true
  2062. }
  2063. ]
  2064. },
  2065. "pages/pixelle-video/index": {
  2066. "path": "pages/pixelle-video/index",
  2067. "needLogin": false,
  2068. "buttons": [
  2069. {
  2070. "name": "返回",
  2071. "selectors": [".back-btn"],
  2072. "type": "safe",
  2073. "expected": "none",
  2074. "login_required": false
  2075. },
  2076. {
  2077. "name": "风格选择",
  2078. "selectors": [".style-item"],
  2079. "type": "safe",
  2080. "expected": "none",
  2081. "login_required": false
  2082. },
  2083. {
  2084. "name": "竖屏 9:16",
  2085. "selectors": [".ratio-item:nth-child(1)"],
  2086. "type": "safe",
  2087. "expected": "none",
  2088. "login_required": false
  2089. },
  2090. {
  2091. "name": "横屏 16:9",
  2092. "selectors": [".ratio-item:nth-child(2)"],
  2093. "type": "safe",
  2094. "expected": "none",
  2095. "login_required": false
  2096. },
  2097. {
  2098. "name": "方形 1:1",
  2099. "selectors": [".ratio-item:nth-child(3)"],
  2100. "type": "safe",
  2101. "expected": "none",
  2102. "login_required": false
  2103. },
  2104. {
  2105. "name": "开始生成",
  2106. "selectors": [".generate-btn"],
  2107. "type": "safe",
  2108. "expected": "toast:生成失败",
  2109. "login_required": false
  2110. },
  2111. {
  2112. "name": "使用 AI 语音朗读",
  2113. "selectors": [".tts-btn"],
  2114. "type": "safe",
  2115. "expected": "toast:语音生成失败",
  2116. "login_required": false
  2117. },
  2118. {
  2119. "name": "播放/暂停音频",
  2120. "selectors": [".audio-play-btn"],
  2121. "type": "safe",
  2122. "expected": "none",
  2123. "login_required": false
  2124. }
  2125. ]
  2126. },
  2127. "pages/notifications/index": {
  2128. "path": "pages/notifications/index",
  2129. "needLogin": true,
  2130. "buttons": [
  2131. {
  2132. "name": "返回",
  2133. "selectors": [".nav-btn:first-child"],
  2134. "type": "safe",
  2135. "expected": "none",
  2136. "login_required": true
  2137. },
  2138. {
  2139. "name": "全部已读",
  2140. "selectors": [".nav-btn:nth-child(2)"],
  2141. "type": "safe",
  2142. "expected": "toast:已全部标为已读",
  2143. "login_required": true
  2144. },
  2145. {
  2146. "name": "通知项(标记已读)",
  2147. "selectors": [".notification-item"],
  2148. "type": "safe",
  2149. "expected": "none",
  2150. "login_required": true
  2151. }
  2152. ]
  2153. },
  2154. "pages/logs/index": {
  2155. "path": "pages/logs/index",
  2156. "needLogin": false,
  2157. "buttons": [
  2158. {
  2159. "name": "返回",
  2160. "selectors": [".nav-btn:first-child"],
  2161. "type": "safe",
  2162. "expected": "none",
  2163. "login_required": false
  2164. },
  2165. {
  2166. "name": "刷新日志",
  2167. "selectors": [".nav-btn:nth-child(2)"],
  2168. "type": "safe",
  2169. "expected": "none",
  2170. "login_required": false
  2171. },
  2172. {
  2173. "name": "请求日志 Tab",
  2174. "selectors": [".tab-item:nth-child(1)"],
  2175. "type": "safe",
  2176. "expected": "none",
  2177. "login_required": false
  2178. },
  2179. {
  2180. "name": "错误分析 Tab",
  2181. "selectors": [".tab-item:nth-child(2)"],
  2182. "type": "safe",
  2183. "expected": "none",
  2184. "login_required": false
  2185. },
  2186. {
  2187. "name": "自动修复 Tab",
  2188. "selectors": [".tab-item:nth-child(3)"],
  2189. "type": "safe",
  2190. "expected": "none",
  2191. "login_required": false
  2192. },
  2193. {
  2194. "name": "一键修复",
  2195. "selectors": [".fix-btn"],
  2196. "type": "safe",
  2197. "expected": "toast:修复",
  2198. "login_required": false
  2199. },
  2200. {
  2201. "name": "分析错误",
  2202. "selectors": [".fix-analyze-btn"],
  2203. "type": "safe",
  2204. "expected": "none",
  2205. "login_required": false
  2206. },
  2207. {
  2208. "name": "应用修复",
  2209. "selectors": [".apply-fix-btn"],
  2210. "type": "safe",
  2211. "expected": "toast:修复",
  2212. "login_required": false
  2213. },
  2214. {
  2215. "name": "测试错误触发器-数据库错误",
  2216. "selectors": [".test-btn:nth-child(1)"],
  2217. "type": "safe",
  2218. "expected": "toast:已触发",
  2219. "login_required": false
  2220. },
  2221. {
  2222. "name": "测试错误触发器-JSON解析",
  2223. "selectors": [".test-btn:nth-child(2)"],
  2224. "type": "safe",
  2225. "expected": "toast:已触发",
  2226. "login_required": false
  2227. },
  2228. {
  2229. "name": "测试错误触发器-参数验证",
  2230. "selectors": [".test-btn:nth-child(3)"],
  2231. "type": "safe",
  2232. "expected": "toast:已触发",
  2233. "login_required": false
  2234. },
  2235. {
  2236. "name": "测试错误触发器-文件不存在",
  2237. "selectors": [".test-btn:nth-child(4)"],
  2238. "type": "safe",
  2239. "expected": "toast:已触发",
  2240. "login_required": false
  2241. },
  2242. {
  2243. "name": "测试错误触发器-权限错误",
  2244. "selectors": [".test-btn:nth-child(5)"],
  2245. "type": "safe",
  2246. "expected": "toast:已触发",
  2247. "login_required": false
  2248. },
  2249. {
  2250. "name": "测试错误触发器-超时错误",
  2251. "selectors": [".test-btn:nth-child(6)"],
  2252. "type": "safe",
  2253. "expected": "toast:已触发",
  2254. "login_required": false
  2255. }
  2256. ]
  2257. }
  2258. }