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

Jawaker游戏卡牌自动点击脚本失效问题求助

Jawaker卡牌自动点击脚本无响应问题

我尝试制作一个自动点击Jawaker游戏卡牌的脚本,但无法正常工作。进入游戏获得卡牌后,希望脚本自动点击这些卡牌,对应的HTML结构如下:

<div id="card-c966" class="card face-up club-10 ui-draggable">
    <div class="face"></div>
    <div class="back"></div>
</div>

我尝试的代码如下:

var a = document.querySelectorAll('[class*="draggable"]');
Array.prototype.forEach.call(a, callback);
 function callback(element, iterator)  {
  console.log(iterator, element.id);
triggerMostButtons (element);
}

function triggerMostButtons (jNode) {
    triggerMouseEvent (jNode, "mouseover");
    triggerMouseEvent (jNode, "mousedown");
    triggerMouseEvent (jNode, "mouseup");
    triggerMouseEvent (jNode, "click");
jNode.click;
jNode.click();
}

function triggerMouseEvent (node, eventType) {
    var clickEvent = document.createEvent('MouseEvents');
    clickEvent.initEvent (eventType, true, true);
    node.dispatchEvent (clickEvent);
}

目前只有mouseover事件生效(仅显示悬停效果),点击操作无反应,且元素已正确获取,请问我遗漏了什么?


问题排查与解决方法

1. 事件绑定层级错误

游戏的点击事件大概率没绑定在卡牌外层div上,而是绑定在了内部的.face或.back子元素上。可以尝试把事件触发目标换成这些子元素:

function triggerMostButtons (jNode) {
    const targetEl = jNode.querySelector('.face') || jNode;
    triggerMouseEvent(targetEl, "mouseover");
    triggerMouseEvent(targetEl, "mousedown");
    triggerMouseEvent(targetEl, "mouseup");
    triggerMouseEvent(targetEl, "click");
    targetEl.click();
}

2. 废弃事件接口导致失效

你用的MouseEvents.createEvent接口已被废弃,现代浏览器推荐用MouseEvent构造函数,同时要补充坐标参数——很多游戏会校验点击是否在元素有效区域内:

function triggerMouseEvent(node, eventType) {
    const rect = node.getBoundingClientRect();
    const event = new MouseEvent(eventType, {
        bubbles: true,
        cancelable: true,
        view: window,
        clientX: rect.x + rect.width / 2,
        clientY: rect.y + rect.height / 2
    });
    node.dispatchEvent(event);
}

3. 游戏反作弊机制拦截

不少网页游戏会检查事件的isTrusted属性(脚本触发的事件该值为false,真实用户操作为true),这类情况普通事件触发方法会失效。如果是这种情况,只能借助调试协议或模拟真实输入的工具,但这类操作可能违反游戏规则,需谨慎使用。

4. 卡牌状态未校验

确认卡牌处于可交互状态:有些卡牌在非回合阶段会被添加禁用类(比如disabled),或者有其他状态属性限制交互,需要先过滤出可点击的卡牌再执行操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 22:40:43