在VSTS管道上运行时在Cypress中滚动

时间:2018-11-12 17:02:41

标签: azure-pipelines cypress

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

// 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流道时,运行时间为100%。

但是,一旦我尝试在VSTS管道中运行,无论我使用哪个选项,测试都不会找到该元素。我还尝试过将scrollTo与PX值而不是%age一起使用,但是可靠性甚至更低。

几乎就像VSTS管道在“忽略”滚动指令一样。

有人建议吗?

谢谢 大卫

3 个答案:

答案 0 :(得分:1)

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

html { scroll-behavior: smooth; }  

您可以在cypress中使用以下代码对其进行修复:

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

答案 1 :(得分:0)

您能否在诺言中尝试使用scrollTo()命令,看看有什么不同;

cy.window().then((win) => {
   win.scrollTo('0%','60%');
});

答案 2 :(得分:0)

另一种尝试的方法是

cy.get(...).scrollIntoView()
cy.get(...).click()

我无法真正测试它,因为它有点繁琐的再现场景。

文档Cypress scrollIntoView()

相关问题