- Cypress教程
- Cypress - 主页
- Cypress - 简介
- Cypress - 架构和环境设置
- Cypress - 测试运行者
- Cypress - 构建第一个测试
- Cypress - 支持的浏览器
- Cypress - 基本命令
- Cypress - 变量
- Cypress - 别名
- Cypress - 定位器
- Cypress - 断言
- Cypress - 文本验证
- Cypress - 异步Behave
- Cypress - 使用 XHR
- Cypress - jQuery
- Cypress - 复选框
- Cypress - 标签
- Cypress - 下拉菜单
- Cypress - 警报
- Cypress - 子窗口
- Cypress - 隐藏元素
- Cypress - 框架
- Cypress - 网络表
- Cypress - 鼠标操作
- Cypress - cookie
- Cypress - 获取和发布
- Cypress - 文件上传
- Cypress - 数据驱动测试
- Cypress - 提示弹窗
- Cypress - 仪表板
- Cypress - 屏幕截图和视频
- Cypress - 调试
- Cypress - 自定义命令
- Cypress - 装置
- Cypress - 环境变量
- Cypress - 挂钩
- Cypress - JSON 文件的配置
- Cypress - 报告
- Cypress - 插件
- Cypress - GitHub
- Cypress有用资源
- Cypress - 快速指南
- Cypress - 有用的资源
- Cypress - 讨论
Cypress - 框架
Cypress 的早期版本无法访问框架内的元素。但是,最近的版本有一个针对框架的解决方案。
要使用框架,首先,我们必须使用下面给出的命令安装 Cypress 插件 -
npm install –D cypress-iframe
将显示的屏幕如下 -
对于Cypress中的框架实现,我们必须在代码中添加语句import 'cypressiframe' 。称为frame/iframe 的标记名用于表示html 代码中的框架。
您的计算机上将出现以下屏幕 -
Cypress命令frameload用于将焦点从主页移动到框架中。一旦焦点移动,我们就可以与框架内的元素进行交互。
这是通过 cy.iframe 方法完成的。
执行
下面给出的是使用 cy.iframe 方法对帧的 Cypress 命令的实现 -
import 'cypress-iframe' describe('Tutorialspoint Test', function () { // test case it('Test Case6', function (){ // launch URL cy.visit("https://jqueryui.com/draggable/"); // frame loading cy.frameLoaded('.demo-frame'); //shifting focus cy.iframe().find("#draggable").then(function(t){ const frmtxt = t.text() //assertion to verify text expect(frmtxt).to.contains('Drag me around'); cy.log(frmtxt); }) }); });
执行结果
输出如下 -
执行日志显示框架内的访问元素以及在框架内抓取的文本。
Cypress 无法处理页面中的多个帧。
此外,对于 Cypress 的框架 Intellisense,我们可以在代码中添加 /// <reference types = "Cypressiframe"/>。