这是一个奇怪的问题。...我不得不在我的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管道在“忽略”滚动指令一样。
有人建议吗?
谢谢 大卫
答案 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()
我无法真正测试它,因为它有点繁琐的再现场景。