如何使用Cypress切换到iFrame

时间:2018-10-09 12:15:56

标签: cypress

我使用Cypress来自动登录受iFrame保护的Web应用程序。

在Selenium中,我可以使用命令切换到iFrame:

username

之后,我也可以访问iFrame元素。

但是对于赛普拉斯,我不知道切换到框架的方法吗?

1 个答案:

答案 0 :(得分:0)

在 Cypress 中,您需要安装一个名为 cypress-iframe 的包才能处理 iFrame 元素。

在终端中运行此命令进行安装:

npm install -D cypress-iframe

cypress-iframe 包导入您的文件:

import 'cypress-iframe';

要加载 iFrame,请使用:

cy.frameLoaded("#id-of-an-iframe");

要在 iFrame 中查找元素,请从:

cy.iframe()

以下是有关如何在 Cypress 中使用 iFrame 元素的代码示例:

/// <reference types="Cypress" />
/// <reference types="cypress-iframe" />
import 'cypress-iframe';

describe("Test Suite", () => {
    it("Test Case", () => {

        cy.visit("https://example.com");

        cy.frameLoaded("#iframe-id"); //Load iFrame

        cy.iframe().find("a[href*='services']").eq(0).click();  //click on link inside iFrame
        cy.iframe().find("h1[class*='service-title']").should("have.length", 2);  //assertion

    })
})