所以基本上我必须在许多网站上测试许多链接,所以我想写一个非常通用的代码。在这种情况下,它只是故意检查主部分。
it('check all links in main', () => {
cy.visit('/')
cy.get("main").within(() => {
cy.get("a").each(page => {
cy.request(page.prop('href'))
})
})
});
这将检查所有链接,但前提是没有错误。我希望它能贯穿整个页面,如果它有效与否,只需注销每个链接。它不应该在第一个错误后停止。
看起来您正在寻找failOnStatusCode
选项
cy.get("a").each(page => {
const link = page.prop('href')
cy.request({
url: link,
failOnStatusCode: false // allow good and bad response to pass into then
}).then(response => {
Cypress.log({
name: link,
message: response.status
})
})
})
尝试将您的请求放入.then()
实例中。
it('check all links in main', () => {
cy.visit('/')
cy.get("main").within(() => {
cy.get("a").each(a => {
cy.get(a).then((page) => {
cy.request(page.prop('href'), {failOnStatusCode: false})
cy.request({url: page.prop('href'), failOnStatusCode:false, })
})
})
})
})