我正在尝试使用 Cypress.io 为我的 chrome/firefox 扩展编写测试在我的扩展内容脚本中,我将一个按钮附加到 DOM 的 body 元素并尝试使用 cypress 来单击该按钮,但是在运行测试时,该按钮被注入到测试运行器 DOM,而不是 DOM我的测试通过 cy.visit() 访问的页面 - 所以我的 cy.get('injected element') 调用找不到该元素。看起来 cypress 在 iframe 中加载 cy.visit() 页面,而 cy.get() 无法找到该 iframe 之外的元素。我该如何解决这个问题?
1 回答
HUWWW
TA贡献1874条经验 获得超12个赞
将此发布给将来可能遇到相同问题的人。
"all_frames": true
您可以通过在扩展 manifest.json 中添加内部 content_scripts 来解决此问题。这允许将扩展注入所有框架,而不仅仅是选项卡的最顶层框架
您也可以仅在运行 cypress 时添加它,方法是在将扩展加载到 cypress 测试运行程序之前修改 manifest.json
- 从扩展构建文件夹中读取清单
-修改content_scripts以包含"all_frames": 'true'
-保存清单的更新版本
添加回答
举报
0/150
提交
取消