Cypress.io:无论如何要测试特定的滚动量?

时间:2018-04-24 12:01:41

标签: javascript mocha chai ecmascript-5 cypress

想知道是否有某种方法可以在Cypress.io的某个范围内测试滚动量。

更具体

  1. 从页面顶部开始,按下按钮
  2. 页面向下滚动到一定高度
  3. 测试滚动高度是否在一定范围内正确
  4. 我的尝试: 我认为最好的方法是测试那将测试,当前div不在手机屏幕的可视区域内。然后向下滚动以便它变得可见。

    cy.get('#angular-projects').should('not.be.visible') // div #angular-projects
    cy.get('#developer-projects').click() // button
    cy.get('#angular-projects').should('be.visible')
    

    想知道是否可以通过 mocha chai 完成此操作,如果没有 cypress 解决

2 个答案:

答案 0 :(得分:3)

您可以使用cy.window()获取cy.window().then(($window) => { expect($window.scrollY).to.be.closeTo(400, 100); }); 对象,然后构建断言,检查scrollY是否等于您的预期。

这样的事情应该测试滚动是否在距离顶部300到500像素之间(closeTo的第一个参数指定了你想要的值,第二个参数是你想要接受的误差范围):

{{1}}

答案 1 :(得分:1)

这是另一种改编:

// * Ability to Test scroll position of window :)
cy.window().then((win) => {
  win.scrollTo(0, 1000);
});

cy.window()
  .its("scrollY")
  .should(($scrollY) => {
    // expect($scrollY).to.have.value(0);
    expect($scrollY).to.be.closeTo(0, 0);
  });