Cypress - 隐藏元素

Cypress 可以处理隐藏元素。有时,子菜单仅在鼠标悬停在主菜单上时才显示。这些子菜单最初通过层叠样式表 (CSS) 属性 display:none 隐藏。

为了处理隐藏元素,Cypress 借助 jQuery 方法 show。它必须在 Cypress 命令 (invoke['show']) 的帮助下调用。

例如,将鼠标悬停在"登录"菜单上时,将显示"登录"按钮,如下所示 −

登录

将鼠标移出"登录"菜单时,将隐藏"登录"按钮,如下所示 −

登录菜单

实现

使用 jQuery show 方法实现隐藏元素如下 −

describe('Tutorialspoint Test', function () {
    // 测试用例
    it('场景 1', function (){
        // 启动URL
        cy.visit("https://www.amazon.com/");
        // 使用invoke显示隐藏元素
        cy.get('#nav-flyout-ya-signin').invoke('show');
        //单击隐藏元素
        cy.contains('Sign').click();
    });
});

执行结果

输出结果如下所示 −

jQuery show
describe('Tutorialspoint Test', function () {
    // 测试用例
    it('Scenario 1', function (){
        // 启动 URL
        cy.visit("https://www.amazon.com/");
        // 使用invoke显示隐藏元素
        cy.get('#nav-flyout-ya-signin').invoke('show');
        //单击隐藏元素
        cy.contains('Sign').click();
    });
});

执行结果

输出如下所示 −

使用 jQuery 隐藏元素

执行日志显示步骤右侧图标所表示的隐藏元素。

Cypress 还有另一种处理隐藏元素的技术。

例如,要单击隐藏元素,我们可以使用 Cypress 命令 click 并将选项 {force : true} 作为参数传递给它 - click({ force: true })。

这会修改隐藏元素的隐藏特性,我们可以单击它。

使用 click 实现

下面给出了 Cypress 中带有选项 click 的实现 −

describe('Tutorialspoint Test', function () {
    // 测试用例
    it('Scenario 1', function (){
        // 启动 URL
        cy.visit("https://www.amazon.com/");
        //单击隐藏元素
        cy.contains('Sign').click({force:true});
    });
});

执行结果

输出如下所示 −

Implementation with Click

执行日志显示单击了隐藏元素(登录),并且我们导航到下一页。