如何测试 cypress 中元素的相对位置?

发布于 2025-01-11 00:10:34 字数 239 浏览 0 评论 0原文

我目前是 cypress 的新手,想要测试“忘记密码”是否应该位于 Facebook 页面的“登录”按钮下方?有办法做到这一点吗? Facebook 页面

有没有办法测试 cypress 中元素的相对位置?

I am currently new to cypress and wants to test that Forgot Password should be below Login button in Facebook page? Is there a way to do that?
Facebook page

Is there a way to test relative positioning of elements in cypress?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

扛起拖把扫天下 2025-01-18 00:10:34

我认为你可以使用 jQuery .position()

cy.get('#element1')
  .then($el => $el.position().top)  // get 1st top value
  .then(top1 => {
    cy.get('#element2')
      .then($el => $el.position().top)  // get 2nd top value
      .then(top2 => {
        expect(top1).to.be.gt(top2)
      })
  })

注释

Cypress 使用 jQuery来寻找元素。链接 .then($el => ... 公开包含该元素的 jQuery 对象,因此现在您可以应用不属于 Cypress 命令一部分的其他 jQuery 函数。

事实上,任何其他 Javascript 。

您还可以创建可重用的函数

const getTop = ($el) = $el.position().top;

cy.get('#element1').then(getTop)  
  .then(top1 => {
    cy.get('#element2').then(getTop)
      .then(top2 => {
        expect(top1).to.be.gt(top2)
      })
  })

I think you can use jQuery .position()

cy.get('#element1')
  .then($el => $el.position().top)  // get 1st top value
  .then(top1 => {
    cy.get('#element2')
      .then($el => $el.position().top)  // get 2nd top value
      .then(top2 => {
        expect(top1).to.be.gt(top2)
      })
  })

Notes

Cypress use jQuery to find elements. Chaining .then($el => ... exposes the jQuery object containing the element, so now you can apply other jQuery functions that are not part of the Cypress commands.

In fact, any other Javascript functions you want.

You can also make reusable functions

const getTop = ($el) = $el.position().top;

cy.get('#element1').then(getTop)  
  .then(top1 => {
    cy.get('#element2').then(getTop)
      .then(top2 => {
        expect(top1).to.be.gt(top2)
      })
  })
新人笑 2025-01-18 00:10:34

您可以使用 cypress 方法 next() 来确定 Log in 按钮旁边的元素,如下所示。 next() 获取一组 DOM 元素中紧随其后的同级元素DOM 元素。

cy.get('div[type="submit"]').next().should('have.text', 'Forgot password?')

You can use the cypress method next() to determine the element next to Log in button like this. next() gets the immediately following sibling of each DOM element within a set of DOM elements.

cy.get('div[type="submit"]').next().should('have.text', 'Forgot password?')
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文