Robot Framework Browser库执行New Context时出现TypedDict相关TypeError如何解决
错误产生原因
- 该报错是Robot Framework Browser库低版本的已知兼容问题:版本低于12.0.0的Browser库,在处理字典类型的入参(比如你用例中的
viewport参数、报错提到的httpCredentials参数)时,使用了不支持实例/类检查的TypedDict做类型校验,当配套依赖的typing-extensions包版本高于4.5.0时,就会触发该TypeError。 - 你同时导入SeleniumLibrary和Browser库不属于本次报错的直接诱因,但两个库存在同名关键字,后续测试有冲突风险。
修复方案
方案1:升级Browser库到最新稳定版(推荐)
执行以下命令完成升级,官方已在高版本修复了该类型校验的bug:
pip install --upgrade robotframework-browser rfbrowser init
升级完成后原测试用例无需修改即可正常运行。
方案2:降级typing-extensions版本(无法升级Browser库时使用)
如果项目有版本约束不能升级Browser库,可将typing-extensions包降级到4.5.0及以下,规避TypedDict校验逻辑变动带来的兼容问题:
pip install typing-extensions==4.5.0
可选优化:避免多库关键字冲突
如果你的测试不需要用到SeleniumLibrary,可直接在Settings中删除该库的导入。如果必须同时使用两个库,可通过设置别名区分:
*** Settings *** Library SeleniumLibrary WITH NAME Selenium Library Browser WITH NAME PW
调用对应库的关键字时加上前缀即可,例如PW.New Context。
内容的提问来源于stack exchange,提问作者Solomon
相关产品推荐
相关产品推荐

