首页 > 解决方案 > 在 VSTS 管道上运行时在赛普拉斯中滚动

问题描述

这是一个奇怪的问题......我不得不在scrollTo我的 E2E 赛普拉斯测试中插入一个条目:

// More details for Standard Twin,     
            cy.scrollTo('0%,60%');
    cy.wait(3000);
    cy.get(':nth-child(2) > :nth-child(1) > :nth-child(1) > .jss639 > .jss675 > .jss963 > .jss959 > .jss985 > .jss578 > :nth-child(1) > .jss476 > .jss550').click();

如果没有scrollTo,则永远找不到第三行中的命令按钮......我也必须放入一个cy.wait

现在,当本地运行有头或无头、Chrome 或 Electron、VS Code 或 Cypress runner 时,它的运行时间为 100%。

但是一旦我尝试在 VSTS 管道中运行,无论我使用哪个选项,测试都不会找到这个元素。我也尝试过使用带有 PX 值而不是 %ages 的 scrollTo,但这更不可靠。

就好像 VSTS 管道“忽略”了滚动指令。

有人建议吗?

谢谢大卫

标签: azure-pipelinescypress

解决方案


如果您的应用程序中有以下样式,则可能会干扰赛普拉斯的滚动行为:

html { scroll-behavior: smooth; }  

您可以在 cypress 中使用以下代码修复它:

cy.get('html').invoke('attr', 'style', 'scroll-behavior: inherit');

推荐阅读