Cypress 自动化测试中如何操作多个浏览器窗口

阅读时长 4 分钟读完

Cypress 是现代化的前端自动化测试框架,它通过简单易用却又功能强大的 API,让前端工程师能够快速编写和运行自动化测试用例。其中,操作浏览器窗口是常见的需求,本文将介绍如何使用 Cypress 操作多个浏览器窗口。

打开新窗口

在 Cypress 中,可以使用 cy.visit() 命令打开一个新的浏览器窗口。例如:

其中,target: '_blank' 的参数告诉 Cypress 在新窗口中打开链接。

Cypress 还提供了 cy.window() 命令,可以获取到当前窗口的对象。所以,结合 cy.visit()cy.window() 命令,可以在当前窗口中打开并获取新窗口的对象:

-- -------------------- ---- -------
------------------------------ - 
  ----------------- - -----------------------
    ------------ ------------------------
  -
--
------------------------
--------------------------------------------- -------------------------
-------------------- -- - -- ----------
  ----------------------------
--

上述代码中,我们使用 cy.stub() 命令将 window.open() 函数存储为别名 windowOpen,以便后续检查它是否被调用,并获取新打开窗口的对象。

切换窗口

Cypress 还提供了 cy.window()cy.visit() 等命令,可以让我们在不同的窗口间切换:

-- -------------------- ---- -------
------------------------------ -
  ----------------- -
    ------------ ------------------------
  -
--
------------------------
--------------------------------------------- -------------------------
--------------------- -- - -- ----------
  -----------------------------
--
----------------------------- -- - -- ------
  ------------------------------ -- ------ ---
  ---------------------------------
--
---------------------------------- -- - -- -------
  ----------------- - --------------------
--

上述代码中,我们首先使用 cy.visit() 命令打开 example.com 首页,并在点击按钮后打开 new.example.com 网页。然后,我们使用 cy.window() 命令获取到新打开窗口的对象,并使用 Cypress.log() 命令在控制台输出当前窗口的 URL。最后,我们切换回原窗口,并修改它的 URL。

关闭窗口

最后,我们还可以通过 cy.window() 命令来关闭当前窗口:

注意,这里只能关闭当前窗口,如果需要关闭新打开的窗口,则需要先使用 cy.get('@newWindow') 命令获取到它的对象,然后调用 win.close()

总结

在 Cypress 自动化测试中操作多个浏览器窗口是常见需求之一,本文介绍了如何使用 cy.visit()cy.window() 等命令来打开、切换和关闭浏览器窗口。需要注意的是,Cypress 不支持跨多个窗口执行命令,因此每次操作都需要获取到对应的窗口对象。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/649bc16748841e9894884041

纠错
反馈