Cypress 简明教程

Cypress - Hidden Elements

Cypress 可以处理隐藏元素。有时,只在鼠标悬停在主菜单上时才显示子菜单。这些子菜单最初被 Cascading Style Sheets (CSS) 属性 display:none 隐藏。

为了处理这些隐藏元素,Cypress 借助于 jQuery 方法 show。必须利用 Cypress 命令 (invoke['show']) 来调用它。

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

sign in

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

sign in menu

Implementation

使用 jQuery show 方法处理隐藏元素的实现如下:

describe('Tutorialspoint Test', function () {
   // test case
   it('Scenario 1', function (){
      // launch URL
      cy.visit("https://www.amazon.com/");
      // show hidden element with invoke
      cy.get('#nav-flyout-ya-signin').invoke('show');
      //click hidden element
      cy.contains('Sign').click();
   });
});

Execution Results

输出如下 −

jquery show
describe('Tutorialspoint Test', function () {
   // test case
   it('Scenario 1', function (){
      // launch URL
      cy.visit("https://www.amazon.com/");
      // show hidden element with invoke
      cy.get('#nav-flyout-ya-signin').invoke('show');
      //click hidden element
      cy.contains('Sign').click();
   });
});

Execution Results

输出如下 −

hidden elements with jquery

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

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

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

这会修改隐藏元素的隐藏特征,我们就可以点击它了。

Implementation with click

下面给出了 Cypress 中包含 click 选项的实现:

describe('Tutorialspoint Test', function () {
   // test case
   it('Scenario 1', function (){
      // launch URL
      cy.visit("https://www.amazon.com/");
      //click hidden element
      cy.contains('Sign').click({force:true});
   });
});

Execution Results

输出如下:

implementation with click

执行日志显示隐藏元素已点击(Sign in),并且我们已导航到下一页。