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

如何在C#版Selenium中允许ChromeDriver的剪贴板权限?

在C# Selenium中自动允许Chrome剪贴板权限

你之前尝试的profile.clipboard_controls_mode配置已不再生效,以下是两种可靠的实现方式:

方法一:通过ChromeOptions全局设置剪贴板权限

直接通过配置项授予所有网站剪贴板权限,并禁用权限提示弹窗:

ChromeOptions options = new ChromeOptions();
// 允许所有网站的剪贴板权限
options.AddUserProfilePreference("profile.content_settings.exceptions.clipboard.*.setting", 1);
// 设置默认剪贴板权限为允许
options.AddUserProfilePreference("permissions.default.clipboard", 1);
// 禁用剪贴板权限提示弹窗特性
options.AddArgument("--disable-features=ClipboardContentSetting");

IWebDriver driver = new ChromeDriver(options);

方法二:使用Chrome DevTools协议精准授予权限

这种方式可以针对特定域名单独授予剪贴板读写权限,安全性更高:

ChromeOptions options = new ChromeOptions();
ChromeDriver driver = new ChromeDriver(options);

// 初始化DevTools会话
var devTools = driver as IDevTools;
var devToolsSession = devTools.CreateDevToolsSession();

// 授予剪贴板读取权限
devToolsSession.SendCommand(new Command("Permissions.setPermission", new Dictionary<string, object>
{
    { "permission", "clipboard-read" },
    { "setting", "granted" }
}));

// 授予剪贴板写入权限
devToolsSession.SendCommand(new Command("Permissions.setPermission", new Dictionary<string, object>
{
    { "permission", "clipboard-write" },
    { "setting", "granted" }
}));

// 也可以指定具体域名(替换为你的目标网站域名)
// devToolsSession.SendCommand(new Command("Permissions.setPermission", new Dictionary<string, object>
// {
//     { "origin", "https://your-target-site.com" },
//     { "permission", "clipboard" },
//     { "setting", "granted" }
// }));

说明:方法一适合不需要区分域名的场景,方法二更灵活,能避免全局开放权限带来的潜在风险。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 17:12:16