【问题标题】:Make {force:true} in click() function the default behavior使 click() 函数中的 {force:true} 成为默认行为
【发布时间】:2020-12-02 07:48:55
【问题描述】:
我正在使用 Cypress 测试 Web 应用程序。尝试使用 click() 函数单击链接/按钮时,我不断收到此可见性错误(此元素''不可见,因为它的父级...)。
Cypress 建议 “修复此问题,或使用 {force: true} 禁用错误检查” 确实有帮助。
现在,我一直在谷歌上搜索如何使 {force:true} 成为 click() 函数的默认行为,因此我不必编写它每次使用 click() 功能,但到目前为止找不到任何东西 - click({force:true})。
这甚至可能吗?
有什么想法吗?
BR
【问题讨论】:
标签:
function
click
cypress
【解决方案1】:
您可以为单击编写一个名为 forceClick 的自定义命令。
Cypress.Commands.add('forceClick', {prevSubject: 'element'}, (subject, options) => {
cy.wrap(subject).click({force: true})
});
然后你可以使用:
cy.forceClick()
而不是
cy.click()
【解决方案2】:
在这种情况下,你真的应该在 .click() 之前 scrollIntoView()。我遇到了一个令人讨厌的 UI 错误,其中一个按钮的请求仅在 Cypress 中进行了 2 次,因为我们强行点击了一个不在视图中的按钮。
我建议:
cy.get('button').scrollIntoView().click();