如何获取cypress中data-id的值

Kav*_*mar 4 jquery attributes invoke cypress

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

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

谢谢,

Der*_*son 7

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

$('[data-nemo=token]').data('id');
Run Code Online (Sandbox Code Playgroud)

在赛普拉斯,它是

cy.get('[data-nemo=token]').invoke('data', 'id');
Run Code Online (Sandbox Code Playgroud)

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

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

或者

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

cy.get('@dataId')
  .then(dataId => cy.log('dataId : ', dataId));
Run Code Online (Sandbox Code Playgroud)