Popover

Requires modern browser that understands both Popoversopen in new window and Invoker commandsopen in new window

<button commandfor="mycommandpopover" command="toggle-popover">
  Toggle popover
</button>
<div id="mycommandpopover" popover>Popover content</div>
cy.get('#mycommandpopover').should('not.be.visible')
cy.contains('button', 'Toggle popover')
  .should('have.attr', 'command', 'toggle-popover')
  .and('have.attr', 'commandfor', 'mycommandpopover')
  .click()
cy.get('#mycommandpopover')
  .should('be.visible')
  // slow down the test on purpose to see the popover element
  .wait(500)

cy.log('**close popover**')
cy.contains('button', 'Toggle popover').click()
cy.get('#mycommandpopover').should('not.be.visible')