如果有的话,我如何使用Cypress找到一个网站中所有断开的链接?有没有什么插件可以使用?
如果没有,我应该如何编写代码来查看链接是否返回200状态(或成功链接)?
谢谢!
发布于 2021-03-05 06:38:47
也许是这个?
cy.request('yourlink')
.should((response) => {
expect(response.status).to.eq(200)
})发布于 2021-09-09 03:00:49
试试这个。
对于第一个选择a[href*="yourdomain.com"],我没有包括"www“的原因是因为对于我的项目,我们也链接到子域,所以我需要包括这些。
对于下半场,:not([href=""],对于我的项目,由于某种原因,我们有这样的链接,所以我必须确保不包括它。
$el.prop("href")从DOM元素获取href值。
我使用cy.request()向URL发送一个HTTP请求,并确保它返回200,从而证明该页面存在。
代码如下:
cy.get('a[href*="yourdomain.com"]:not([href=""])').each(($el) => {
cy.request($el.prop("href")).as("link");
});
cy.get("@link").should((response) => {
expect(response.status).to.eq(200);
});你可以在任何页面上使用它。您可以在cypress.json文件中列出页面,也可以通过编程将其作为回归测试。
发布于 2021-10-01 09:33:16
下面是最简单的方法:
cy.request("yourLink")是的,不需要添加任何断言。因为默认情况下会断言响应不是404。所以这一行已经足够了。
如果你想走得更远,并测试页面中的所有链接,下面是要做的:
cy.get('a').each(link => {
cy.request(link.prop('href'))
})https://stackoverflow.com/questions/66482349
复制相似问题