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

如何用WebdriverIO(Selenium)自动化禁用Chrome剪贴板弹窗?

解决WebdriverIO中Chrome剪贴板权限弹窗无法禁用的问题

这种Chrome原生的剪贴板权限弹窗确实头疼——既不属于可通过accept()/dismiss()处理的JS弹窗,又没法用开发者工具定位,而且Selenium每次启动都是全新的临时用户配置,手动改的浏览器设置根本带不进去。我之前帮同事解决过几乎一样的问题,给你几个亲测有效的方案:

核心思路:通过Chrome启动预设配置跳过权限询问

既然每次会话都是全新的,那我们直接在启动Chrome时就告诉它“自动允许剪贴板权限请求”,完全跳过弹窗环节。具体要在WebdriverIO的capabilities配置里做文章:

方案1:配置Chrome偏好设置(最常用)

在你的wdio.conf.js文件中,找到capabilities数组,添加goog:chromeOptions配置,通过prefs预设剪贴板权限:

capabilities: [{
  browserName: 'chrome',
  'goog:chromeOptions': {
    args: [
      '--disable-infobars', // 隐藏"Chrome正在被自动软件控制"的提示
      '--disable-extensions' // 禁用扩展,避免干扰
    ],
    prefs: {
      // 1=自动允许,2=自动拒绝,0=询问(默认)
      'profile.default_content_setting_values.clipboard': 1,
      // 针对所有网站生效的剪贴板权限规则
      'profile.content_settings.exceptions.clipboard': {
        '*': {
          'setting': 1
        }
      }
    }
  }
}]

方案2:通过权限策略参数强制允许

如果方案1没生效,可能是网站用了新版的Clipboard API,这时候可以在Chrome启动参数里直接设置权限策略,强制允许所有网站的剪贴板读写:

capabilities: [{
  browserName: 'chrome',
  'goog:chromeOptions': {
    args: [
      '--disable-infobars',
      '--disable-extensions',
      // 允许所有网站的剪贴板读写权限,不会触发弹窗
      '--permissions-policy=clipboard-read=*,clipboard-write=*'
    ]
  }
}]

额外提示:排除其他干扰

如果还是有弹窗,检查下是不是还有其他类型的通知弹窗,比如网站推送,可以在args里再加一个--disable-notifications参数,一次性禁用所有通知类弹窗。

为什么手动设置没用?

Selenium/WebdriverIO每次启动Chrome时,都会创建一个临时的、干净的用户配置文件,你手动在Chrome里改的设置只会保存在本地默认配置里,完全不会被自动化会话继承——这就是为什么你手动改完有用,但自动化还是会弹窗的原因。

按照上面的配置修改后,重启你的自动化会话,应该就能彻底摆脱这个剪贴板弹窗,直接操作背后的网页元素了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 08:32:26