You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Bumble网站点赞按钮.click()函数失效问题求助

解决Bumble自动点赞按钮.click()触发不稳定的问题

核心原因分析

  • Bumble存在反自动化检测机制,会校验交互事件的真实性(比如事件的isTrusted属性、操作间隔、鼠标轨迹等)
  • 点击事件可能并非绑定在你选中的.encounters-action--like元素上,而是通过事件委托绑定在父级或子元素上
  • 页面动态渲染时,元素DOM已存在但事件监听器尚未完成绑定

可行解决方案

1. 模拟更贴近真实用户的PointerEvent序列

现代浏览器优先使用PointerEvent,通过指定坐标模拟真实点击位置,能降低被检测的概率:

function simulateRealClick(element) {
  // 确保元素滚动到视口中央
  element.scrollIntoView({ behavior: 'auto', block: 'center' });
  
  const rect = element.getBoundingClientRect();
  const centerX = rect.left + rect.width / 2;
  const centerY = rect.top + rect.height / 2;

  // 按真实交互顺序触发事件
  const events = [
    new PointerEvent('pointerover', { bubbles: true, clientX: centerX, clientY: centerY }),
    new PointerEvent('pointerdown', { bubbles: true, clientX: centerX, clientY: centerY }),
    new PointerEvent('pointerup', { bubbles: true, clientX: centerX, clientY: centerY }),
    new PointerEvent('click', { bubbles: true, clientX: centerX, clientY: centerY })
  ];

  events.forEach(evt => element.dispatchEvent(evt));
}

// 使用示例:每1.5秒尝试一次点击
const checkAndClick = setInterval(() => {
  const likeBtn = document.querySelector('[data-qa-role="encounters-action-like"]');
  if (likeBtn) {
    simulateRealClick(likeBtn);
    // 可选:如果是单次点击,取消定时器;如果是循环点赞则保留
    // clearInterval(checkAndClick);
  }
}, 1500);

2. 定位实际绑定事件的元素

通过Chrome控制台查看事件绑定位置:

  1. 选中点赞按钮右键→检查→切换到Event Listeners标签
  2. 查看click事件绑定在哪个元素(可能是内部的<svg>或<span>)

尝试直接点击最内层的交互元素:

const likeIcon = document.querySelector('[data-qa-icon-name="floating-action-yes"]');
if (likeIcon) {
  likeIcon.click();
}

3. 等待事件监听器完成绑定

使用MutationObserver监听元素的动态变化,确保事件绑定完成后再触发点击:

const observer = new MutationObserver(() => {
  const likeBtn = document.querySelector('[data-qa-role="encounters-action-like"]');
  if (likeBtn && getEventListeners(likeBtn).click?.length) {
    simulateRealClick(likeBtn);
    observer.disconnect();
  }
});

// 监听点赞按钮所在的父容器变化
const container = document.querySelector('.encounters-controls__action');
if (container) {
  observer.observe(container, { subtree: true, attributes: true, childList: true });
}

4. 规避反检测策略

  • 增加操作间隔到1-2秒,模拟真实用户的滑动速度
  • 不要连续批量触发点击,每次点击后等待页面切换动画完成(比如监听元素移除事件)
  • 避免使用固定定时器,改为在每次点赞完成后再启动下一次检测

内容的提问来源于stack exchange,提问作者HavanaSun

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 19:14:58