这是一个奇怪的问题……我不得不在我的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 runner,它现在100%的时间都运行在本地。
但是只要我尝试在VSTS Pipeline中运行,无论我使用哪个选项,测试都找不到这个元素。我也尝试过使用PX值而不是%age的scrollTo,但这更不可靠。
这几乎就像是VSTS流水线“忽略”了scroll指令。
有人建议吗?
谢谢大卫
发布于 2020-05-16 14:06:38
如果您的应用程序中有以下样式,它可能会干扰Cypress滚动行为:
html { scroll-behavior: smooth; }
您可以使用cypress中的以下代码修复此问题:
cy.get('html').invoke('attr', 'style', 'scroll-behavior: inherit');
发布于 2018-11-12 20:37:32
您能在promise中尝试scrollTo()
命令,看看是否有什么不同;
cy.window().then((win) => {
win.scrollTo('0%','60%');
});
发布于 2018-11-14 00:41:11
另一个可以尝试的选项是
cy.get(...).scrollIntoView()
cy.get(...).click()
我不能真的测试它,因为它是一个有点繁琐的场景来再现。
https://stackoverflow.com/questions/53266864
复制