Cypress.io-从换行键入时超时

时间:2018-10-01 01:33:30

标签: cypress

我是赛普拉斯和Java语言的新手。

我有一个包装好的JSON对象,并在beforeEach函数中为其设置了别名。 我正在尝试使用JSON对象中的属性设置输入字段。

beforeEach(function () {
    cy.wrap({username:"richard@cypresstest.com"}).as('userLoginWrap');
  })

it.only('should log user in successfully', function () {

  cy.get('@userLoginWrap').its('username').should('eq', 'richard@cypresstest.com'); // Passed
  
  cy.get('#usernameField')
      .type(cy.get('@userLoginWrap').its('username')); // Error: Cypress command timeout of '4000ms' exceeded.
})

我该如何解决?

谢谢。

1 个答案:

答案 0 :(得分:0)

cy.type( text )使用字符串。您正在向它传递cy命令,该命令不同步。

您可以做这样的疯狂事情(未经测试):

beforeEach(function () {
  cy.wrap({username:"richard@cypresstest.com"}).as('userLoginWrap');
})

it.only('should log user in successfully', function () {
  let username;
  cy.get('@userLoginWrap').its('username').should('eq', 'richard@cypresstest.com')
    .then( obj => username = obj.username );

  cy.get('#usernameField')
      .type( username );
})

但是我宁愿将"richard@cypresstest.com"存储到一个常量---这样您就不必像现在所做的那样重复它,并且避免了使用{{ 1}}命令。

或者,使用fixtures