从命令使用赛普拉斯变量

Use Cypress Variable From Command

我在 cypress 中有一个实用命令:

Cypress.Commands.add('generateDummyText', (length: number, delay?: number) => {
  const wordLength = 5;

  const lorem = new LoremIpsum({
    wordsPerSentence: {
      max: wordLength,
      min: wordLength,
    },
    words: ['word1', 'word2', 'word3', 'word4', 'word5'],
  });

  const words = lorem.generateWords(Math.ceil(length / wordLength));

  cy.wrap(words).as('dummyText');
});
it('test', () => {
  // Generate dummy text
  cy.generateDummyText(280);

  // I want to type the "dummyText variable here"
  cy.get('myinput').type()
});

如何做到这一点?我不需要使用自定义的 cypress 命令,但我更愿意使用一个。期待您的回复!

您可以通过以下方式访问它:

cy.type(this.dummyText)

另一种选择是使用 faker 为您生成随机单词。 将 faker 模块添加到你的项目中,然后你可以这样做:

const faker = require("faker"); 

.type(faker.random.words(5));

而不是为其使用自定义命令

您可以通过别名获取值:

cy.generateDummyText(280);
cy.get("@dummyText").then(dummyText => {
   cy.get('myinput').type(this.dummyText)
})

或者直接通过命令return取值:

cy.generateDummyText(280).then(dummyText => {
   cy.get('myinput').type(this.dummyText)
})