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

如何使用JavaScript实现Netflix互动电影选项自动点击

解决方案

针对Netflix互动选项点击拦截的问题,核心阻力是前端JS生成的事件isTrusted属性默认为false,Netflix的事件监听逻辑会过滤非用户真实操作的事件,以下是几个可落地的方案:

方案1:优先尝试无额外工具的键盘触发方案

你已经验证focus事件可以正常触发,可在focus之后触发回车键事件,大部分互动场景的键盘事件校验逻辑比鼠标事件宽松:

const targetBtn = document.getElementsByClassName("BranchingInteractiveScene--choice-selection")[0];
// 先触发已经验证可行的focus
targetBtn.dispatchEvent(new Event('focus'));
// 触发回车按下和抬起事件
targetBtn.dispatchEvent(new KeyboardEvent('keydown', {
  key: 'Enter',
  code: 'Enter',
  which: 13,
  keyCode: 13,
  bubbles: true,
  cancelable: true
}));
targetBtn.dispatchEvent(new KeyboardEvent('keyup', {
  key: 'Enter',
  code: 'Enter',
  which: 13,
  keyCode: 13,
  bubbles: true,
  cancelable: true
}));

方案2:火狐扩展原生API方案

如果方案1无效,可通过火狐扩展的input权限API实现真实点击,该API生成的事件isTrusted属性为true,完全等价于用户手动点击,不需要额外的外部进程:

  1. 扩展manifest中申请"input"权限
  2. 在脚本中调用官方API实现点击:
// 先计算目标元素的坐标
const bounding = targetBtn.getBoundingClientRect();
const x = Math.round(bounding.left + bounding.width / 2);
const y = Math.round(bounding.top + bounding.height / 2);
// 触发完整点击流程
browser.input.dispatchMouseEvent({
  type: "mousedown",
  x: x,
  y: y,
  button: 0,
  clickCount: 1
}).then(() => {
  browser.input.dispatchMouseEvent({
    type: "mouseup",
    x: x,
    y: y,
    button: 0,
    clickCount: 1
  });
});

方案3:外部进程模拟点击优化

如果你更倾向于用外部进程的方案,可以替换Java实现为Python+pyautogui的方案,整体轻量化程度更高,不需要复杂的overlay逻辑,仅需启动一个简单的本地HTTP服务接收触发请求即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 14:36:08