Firefox无法加载配置目录cookies.sqlite中部分Cookie的原因排查
结合你遇到的两个属性近乎一致但仅加载其一的场景,以下是核心规则:
同源匹配与上下文标记
Firefox的cookies.sqlite中有个originAttributes字段,这个字段存储了Cookie所属的上下文信息(比如是否属于隐私模式、特定扩展、容器标签页等)。如果两个Cookie的originAttributes值不同,而当前启动的浏览器实例仅匹配其中一个的上下文标记,就只会加载对应Cookie。即便其他属性(expiry、httpOnly等)完全一致,上下文不匹配也会被过滤。Cookie名称的合法性校验
Firefox严格遵循RFC 6265规范校验Cookie名称:名称不能包含空格、控制字符或()<>@:;\"/[]?={}这类特殊字符。如果第二个Cookie的名称存在隐性非法字符(比如不可见的控制字符),或者名称长度超出Firefox的限制(默认最大4096字节),会被浏览器在加载时直接忽略。存储状态的完整性
cookies.sqlite中的Cookie记录需要完整包含name、value、domain、path这四个核心字段。如果第二个Cookie的记录存在字段缺失、数据损坏(比如value字段为空或乱码),Firefox会判定该Cookie无效,不会加载。Selenium/GeckoDriver的过滤规则
GeckoDriver在启动Firefox时,可能会对配置目录中的Cookie做额外过滤:比如仅加载与当前会话上下文匹配的Cookie,或者过滤掉标记为“仅在特定站点生效”但当前未访问该站点的Cookie。如果第二个Cookie的domain或path虽然表面看与前者一致,但实际存在大小写差异(比如example.com和Example.com),也会被视为不匹配而不加载。
内容的提问来源于stack exchange,提问作者Uchiha AJ

