Cypress - 框架

Cypress 的早期版本无法访问框架内的元素。但是,最新版本为框架提供了解决方案。

要使用框架,首先,我们必须使用下面给出的命令安装 Cypress 插件 −

npm install –D cypress-iframe

将显示的屏幕如下所示 −

Cypress Plugin

对于 Cypress 中的框架实现,我们必须在代码中添加语句 import 'cypressiframe'。 html 代码中使用名为 frame/iframe 的标记名来表示框架。

您的计算机上将显示以下屏幕 −

Cypress Iframe

Cypress 命令 frameload 用于将焦点从主页移动到框架。焦点转移后,我们可以与框架内的元素进行交互。

这是通过 cy.iframe 方法完成的。

实现

下面给出了使用 cy.iframe 方法实现框架的 Cypress 命令 −

import 'cypress-iframe'
describe('Tutorialspoint Test', function () {
    // 测试用例
    it('Test Case6', function (){
        // 启动 URL
        cy.visit("https://jqueryui.com/draggable/");
        // 框架加载
        cy.frameLoaded('.demo-frame');
        // 转移焦点
        cy.iframe().find("#draggable").then(function(t){
            const frmtxt = t.text()
            // 断言以验证文本
            expect(frmtxt).to.contains('Drag me around');
            cy.log(frmtxt);
        })
    });
});

执行结果

输出结果如下 −

Draggable

执行日志显示框架内的访问元素以及其中抓取的文本。

Cypress 无法处理页面中的多个框架。

此外,对于 Cypress 的框架 Intellisense,我们可以将 /// <reference types = "Cypressiframe"/> 添加到代码中。