Robot Framework 如何跳过网站“请接受cookies”提示弹窗?
核心结论
可以通过为会话添加指定Cookie的方式跳过这类弹窗,不存在技术实现障碍;但不存在全站通用的统一Cookie值,单个特定站点的Cookie规则独立,需要单独适配。
实现原理
绝大多数Cookie同意弹窗的触发逻辑为:检测浏览器当前域下是否存在「用户已同意Cookie政策」的标识Cookie,不存在则弹出弹窗,存在则直接隐藏弹窗。只要提前拿到站点对应的同意标识Cookie,写入测试会话即可跳过弹窗。
具体操作步骤
- 第一步:手动打开目标站点,点击同意Cookie弹窗后,打开浏览器开发者工具的「Application」标签页,在Cookie分类下找到当前站点的所有Cookie条目,记录下名称包含
consent、cookie_agree、gdpr这类关键词的Cookie的键、值、域、路径属性。 - 第二步:在Robot Framework用例中,先访问一次目标站点的根路径(必须先访问同域地址才能写入Cookie,否则会触发域匹配错误)
- 第三步:使用SeleniumLibrary的
Add Cookie关键字写入提前获取到的Cookie,参考代码如下:
*** Settings *** Library SeleniumLibrary *** Test Cases *** 跳过Cookie弹窗测试 # 启动浏览器 Open Browser https://example.com Chrome # 先访问一次目标站点根地址,保证域匹配 Go To https://example.com # 写入提前获取的同意Cookie,属性和浏览器中记录的保持一致 Add Cookie cookie_consent accept path=/ domain=example.com Add Cookie gdpr_agreed 1 path=/ domain=example.com # 刷新页面后弹窗不会再触发 Reload Page # 后续执行正常测试步骤 ...
注意事项
- 不同站点的Cookie键名、值、校验规则都不通用,每个需要测试的站点需要单独获取一次对应的同意Cookie
- 部分站点会对Cookie值做签名校验,不要手动修改值,直接完整复制浏览器中拿到的原始值即可
- 如果站点的Cookie同意规则更新,需要重新获取一次最新的Cookie值
内容的提问来源于stack exchange,提问作者qathulu
相关产品推荐
相关产品推荐

