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

如何在Selenium控制的Chrome中查看Flash Cookie?.NET(C#)获取实例共享对象

嘿,我之前刚好碰到过类似的问题,Selenium启动的Chrome实例默认用的是临时用户数据目录,所以你本地浏览器的Flash存储路径根本找不到它的Shared Object(也就是你说的Flash Cookie)。给你几个实用的解决方案:

方案一:指定固定的用户数据目录给Selenium

这是最稳妥的方法。让Selenium的Chrome实例使用你自定义的(或者你本地默认的)用户数据目录,这样Flash的Shared Object就会存在这个目录的Flash存储路径里,和你手动打开Chrome的逻辑完全一致。

在C#里可以这么配置ChromeOptions:

using OpenQA.Selenium.Chrome;

var chromeOptions = new ChromeOptions();
// 替换成你想要使用的目录路径,可以是你本地Chrome的默认目录,也可以新建一个专门的目录
// 注意:如果用本地默认目录,要确保此时没有其他Chrome实例在运行,否则会报错
chromeOptions.AddArgument(@"--user-data-dir=C:\SeleniumChromeProfile");

// 启动ChromeDriver
var driver = new ChromeDriver(chromeOptions);

之后,这个目录下的Pepper Data\Shockwave Flash\WritableRoot#SharedObjects路径里,就会保存Selenium实例中Flash生成的Shared Object文件了。

方案二:获取Selenium的临时用户数据目录(不推荐)

如果不想用固定目录,也可以获取Selenium启动Chrome时的临时目录,但这个目录在浏览器关闭后会被自动删除,只能在浏览器运行期间访问。

在C#里可以尝试从Driver的Capabilities中提取:

var driver = new ChromeDriver();
// 从Chrome的Capabilities中获取用户数据目录
var chromeCapabilities = driver.Capabilities.GetCapability("chrome") as Dictionary<string, object>;
var userDataDir = chromeCapabilities?["userDataDir"] as string;

拿到路径后,同样去对应的Flash存储目录找.sol文件即可。不过这个方法依赖Selenium和ChromeDriver的版本,不同版本可能有变化,稳定性不如方案一。

额外注意事项
  • Flash存储权限:第一次启动指定目录的Chrome实例时,需要手动允许Kongregate游戏的Flash存储权限,之后该设置会保存在目录里,下次启动就自动生效了。
  • 解析.sol文件:Flash Shared Object是二进制格式的.sol文件,你需要用专门的解析库来读取内容,比如可以找.NET下的Flash SO解析工具(比如一些开源的类库)来处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:47:48