我是赛普拉斯和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.
})
我该如何解决?
谢谢。
答案 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。