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

Selenium驱动Chrome时如何通过代码禁用F1、F11默认功能

Chrome环境下禁用F1、F11按键默认行为的实现方案

页面端JS拦截(通用方案)

直接在目标页面加载最早期绑定keydown事件,在捕获阶段拦截对应按键,阻止默认行为触发即可,该方案对所有运行在页面内的自动化脚本生效。

// 拦截逻辑需要尽可能早执行,不要等DOM加载完成再绑定,避免漏过初始阶段的按键事件
document.addEventListener('keydown', (e) => {
  // F1对应键码112,F11对应键码122
  if ([112, 122].includes(e.keyCode)) {
    e.preventDefault();
    e.returnValue = false; // 兼容旧版Chrome
    // 此处可添加自定义逻辑,触发你的自动化脚本对应流程
  }
}, true); // 第三个参数设为true,在事件捕获阶段触发,优先级高于页面其他按键事件

关键注意点

  • 必须在keydown阶段拦截,Chrome的F1打开帮助页、F11切换全屏/剧场模式的逻辑都在该阶段触发,等到keyup阶段再阻止已经失效
  • 事件绑定要加true启用捕获阶段触发,避免页面内其他脚本绑定的按键事件阻止冒泡,导致拦截逻辑不生效
  • 拦截逻辑仅对当前注入脚本的页面生效,不会影响Chrome其他标签页或浏览器全局功能

自动化框架适配方案

如果你是通过Puppeteer、Playwright、Selenium这类自动化工具控制Chrome,可以不用修改站点业务代码,直接通过框架能力把拦截脚本提前注入到页面中:

  • Playwright/Puppeteer:使用page.evaluateOnNewDocument方法传入上述拦截代码,框架会在每个页面加载、所有业务脚本运行前自动执行拦截逻辑,不会出现漏拦截
  • Selenium:通过CDP命令调用Page.addScriptToEvaluateOnNewDocument能力注入拦截脚本,效果和上述方案一致;无头模式下F11的剧场模式默认不会触发,但F1的跳转行为仍需拦截

补充说明

该方案仅建议在你自己控制的自动化运行环境中使用,如果是面向普通用户的公开站点,拦截默认功能键会违背用户使用习惯,造成操作困扰。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 03:57:32