Cypress - 子窗口
Cypress 没有专门用于处理子窗口的命令。它在 jQuery 中有一个变通方法,通过该方法可以处理子窗口。在 html 代码中,由于 target 属性的存在,链接或按钮会打开到子窗口。
如果 target 属性的值为空白,则会打开到子窗口。Cypress 使用 jQuery 方法 removeAttr,该方法由 Cypress 中的invoke 命令调用。 removeAttr 删除属性,该属性作为参数之一传递给invoke方法。
一旦删除target=blank,父窗口中就会打开一个链接/按钮,在对其执行操作后,我们可以使用go命令返回父URL。
Cypress中打开子窗口的Html代码如下−

实现
下面给出了Cypress中子窗口命令的实现−
describe('Tutorialspoint', function () {
// test case
it('Scenario 1', function (){
// url launch
cy.visit("https://the-internet.herokuapp.com/windows")
// 使用链接调用删除 target 属性
cy.get('.example > a')
.invoke('removeAttr', 'target').click()
// 验证子窗口 url
cy.url()
.should('include', 'https://the-internet.herokuapp.com/windows/new')
// 移至父窗口
cy.go('back');
});
});
执行结果
输出如下 −

输出日志显示删除了 target 属性并在父窗口内启动了子窗口。