diag-send-button.js 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. /**
  2. * diag-send-button.js — 校验发送按钮的两条定位路径都能命中同一个控件
  3. *
  4. * 1. 结构化定位(默认):工具行同高、最右、不属于右侧竖排动作栏
  5. * 2. 配置 id 覆盖(selectors.sendButtonId):TikTok 改版时的逃生舱
  6. * 两条都应指向同一个 bounds,才算"逃生舱真的能用"。
  7. */
  8. var cfg = TikTokAuto.config.resolve({});
  9. var t = TikTokAuto.tiktok;
  10. var l = TikTokAuto.layout;
  11. if (t.pageState() !== 'player') {
  12. var cards = t.videoCards();
  13. console.log('DIAG 卡片数=' + cards.length);
  14. if (cards.length > 0) {
  15. TikTokAuto.ui.clickNode(cards[0].container, 'diag');
  16. TikTokAuto.player.waitPlayerReady(cfg, 'diag');
  17. }
  18. }
  19. console.log('DIAG state=' + t.pageState());
  20. console.log('DIAG 打开评论面板=' + TikTokAuto.comment.openPanel(cfg, 'diag'));
  21. console.log('DIAG panelInput=' + (t.panelInput() !== null));
  22. var override = cfg.selectors && cfg.selectors.sendButtonId;
  23. console.log('DIAG 配置里的 sendButtonId=' + override);
  24. if (override) {
  25. var byId = l.findOnce(id(override));
  26. console.log('DIAG id() 查到节点=' + (byId !== null) +
  27. ' 可见=' + (byId ? l.isVisible(byId) : false) +
  28. ' bounds=' + (byId ? JSON.stringify(byId.bounds()) : 'null'));
  29. }
  30. var structural = t.sendButton({});
  31. console.log('DIAG 结构化定位 bounds=' + (structural ? JSON.stringify(structural.bounds()) : 'null'));
  32. console.log('DIAG sendButton(带配置) bounds=' +
  33. (t.sendButton(cfg) ? JSON.stringify(t.sendButton(cfg).bounds()) : 'null'));
  34. TikTokAuto.comment.closePanel('diag');
  35. console.log('DIAG 收尾 state=' + t.pageState());