我使用Cypress来自动登录受iFrame保护的Web应用程序。
在Selenium中,我可以使用命令切换到iFrame:
username
之后,我也可以访问iFrame元素。
但是对于赛普拉斯,我不知道切换到框架的方法吗?
答案 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
})
})