Javascript 在Cypress中,如何检查最新响应的标题?
在Cypress中,我正在设置登录循环,然后希望提取某些头文件,以便在后续请求中使用。以下是我的登录方式:Javascript 在Cypress中,如何检查最新响应的标题?,javascript,mocha.js,integration-testing,chai,cypress,Javascript,Mocha.js,Integration Testing,Chai,Cypress,在Cypress中,我正在设置登录循环,然后希望提取某些头文件,以便在后续请求中使用。以下是我的登录方式: function login() { return cy.visit('/login') .get("#username").type(Cypress.env("USERNAME")) .get("#password").type(Cypress.env("PASSWORD")) .get("form").submit() .then((result)
function login() {
return cy.visit('/login')
.get("#username").type(Cypress.env("USERNAME"))
.get("#password").type(Cypress.env("PASSWORD"))
.get("form").submit()
.then((result) => {
// TODO - extract the last response's headers and save for later
});
}
但是在这种情况下,result
是表单的DOM选择,我不确定如何获得最新的结果
是否有一些拦截器或其他方式提交表单,使我能够更多地访问请求或响应
我不能用一个cy.request()
来替换它,因为它会跟随一些重定向将我带到一个外部SSO登录页面,因此我只需要检查最新的结果
提前感谢。您需要等待包含所需信息的url的响应。看看这个例子
cy.server().route('http://' + host + '/api/managerecord/userdetails/*').as('getUserDetails')
cy.get(submitButton).click()
cy.wait('@getUserDetails').then((response) => {
expect(response.response.body.waistSize).to.eq(100)
})
在您的情况下,在最后一个响应上设置一条路径,然后等待该响应。如果您不知道该url,请查看Chrome inspector。据我所知,您的表单提交使用本机POST
请求,而不是XHR?如果是这样的话,我不确定你能截获它。无论如何,在基于DOM的命令上链接.then()
都不会产生请求对象。为此,您需要cy.route()
和cy.wait()
。