禁止Cypress自动滚动



我正在测试我的应用程序,我有一个很长的侧菜单,我有这样的代码:

cy.get('tab').click({force: true})

自动滚动发生在获取和单击之间,然后所选选项卡不可见,因为顶部菜单的位置已固定。我找到了很多解决方案,但都不起作用。到目前为止,我在get和click之间尝试了.click({force: true}).click(scrollBehaviour: false})以及.scrollIntoView()。有其他办法解决这个问题吗?

您可以全局设置scrollBehavior或每个测试(-suite(。

我在每次测试的基础上禁用它,就像这样:

it('check something w/ autoscroll disabled', { scrollBehavior: false }, () => {
cy.get('.tab').click();
// do something else ...
});

文档:https://docs.cypress.io/guides/references/configuration#Actionability

您尝试过使用scrollBehaviour: 'top'吗?

您可以在这里找到有关滚动行为的更多详细信息:

https://docs.cypress.io/guides/core-concepts/interacting-with-elements#Scrollinghttps://docs.cypress.io/guides/references/configuration#Actionabilityhttps://docs.cypress.io/api/commands/click#Arguments

您是否尝试在cypress.json文件中键入"scrollBehavior": false?因为它对我有效。

根据自动滚动的实现方式,您可以尝试在测试的顶部添加它

cy.window().then(win => win.scrollTo = cy.stub())

其尝试截取本地CCD_ 7函数。我还没有尝试过,如果win.scrollTo是只读的,它可能会失败。

这是参考页面Window.sollTo((,可以在注释中看到一些其他变体,如果应用程序使用这些变体,可以尝试。

基于Philip Kyeck的回答,它也适用于特定的命令。类似:

cy.get('SelectorHere').trigger("mouseenter", {scrollBehavior: false});

最新更新