繁体   English   中英

在不调用 click 命令的情况下使用 Cypress 单击按钮?

[英]Click a button with Cypress without invoking the click command?

我正在尝试在一个页面上有两个按钮的应用程序中自动化一个页面。 一个是启用的,可以点击。 另一个在第一次加载时被禁用。 但是一旦按下第一个按钮,就会打开一个选项卡新浏览器选项卡,然后启用第二个按钮。 然后用户可以点击它和 go 到一个表单上。

显然赛普拉斯不能处理新标签,但是有没有一种方法可以调用点击命令,而无需通过点击实际调用事件?

我已经尝试过cy.get(".button1").trigger("click")但仍然打开了一个新选项卡。

我想一种解决方案是将其分为两个测试。 但是有更好的方法吗?

就个人而言,我不会通过单击按钮来测试它,而是通过检查它是否可单击(即没有禁用属性)。 如果您正在使用事件侦听器并在 Chrome中进行测试,您可以使用getEventListeners()来检查事件侦听器是否存在,或者您可以检查您可能在其上设置的任何onclick/ng-click属性。

如果您确实想单击按钮来测试事件,但实际上并没有打开新标签,只需找出标签是如何打开的(如window.open(..., '_blank') ),然后对其进行猴子补丁那个测试。

您可以根据您拥有的 Button 的属性执行某种类似的操作。 下面的代码通过按钮再次激活,而不是从禁用的 state 中单击它。

例如

 cy.get('#btnSubmit').invoke("removeAttr","disabled")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM