[英]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.