首页 > 解决方案 > 如何在 cypress 中获取 data-id 的值

问题描述

我需要获取 data-id 的值,但是当我使用下面的代码时,它不会返回任何值。

cy.get('[data-nemo=token]')
  .invoke('attr', 'data-id').then(dataId => {
    cy.log('dataId : ', dataId);`enter code here`
  });

谢谢,

标签: jqueryattributescypressinvoke

解决方案


根据赛普拉斯文档,您可以使用cy.invoke调用 jQuery 方法。所以,就像在 jQuery 中一样,你会这样做

$('[data-nemo=token]').data('id');

在赛普拉斯是

cy.get('[data-nemo=token]').invoke('data', 'id');

如果您想使用该值,您可以使用.then或创建别名,.as并稍后在测试中引用该别名:

cy.get('[data-nemo=token]')
  .invoke('data', 'id')
  .then(dataId => cy.log('dataId : ', dataId));

或者

cy.get('[data-nemo=token]')
  .invoke('data', 'id')
  .as('dataId');

cy.get('@dataId')
  .then(dataId => cy.log('dataId : ', dataId));

推荐阅读