You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Cypress中仅保存URL的部分内容(不含域名)

Cypress提取URL路径并对比的实现方法

方法一:使用原生URL对象解析路径(推荐)

利用JavaScript内置的URL对象可以可靠提取URL中的路径部分,不受域名格式变化影响:

cy.url().then(currentUrl => {
  const urlObject = new URL(currentUrl);
  const targetPath = urlObject.pathname; // 得到如/en/info/is/here/的路径
  // 可选:将路径存入Cypress环境变量,方便后续跨步骤使用
  Cypress.env('pagePath', targetPath);
});

方法二:直接在对比步骤中完成解析

如果不需要跨步骤复用路径,可以直接在断言环节完成解析和对比:

cy.url().then(currentUrl => {
  const currentPath = new URL(currentUrl).pathname;
  // 获取目标元素的href并对比
  cy.get('a.compare-link')
    .invoke('attr', 'href')
    .should('equal', currentPath);
});

补充说明

  • 如果目标href包含查询参数(如/en/info?is=1),可以用urlObject.pathname + urlObject.search来完整提取域名后的部分
  • URL对象能自动处理带端口、子域名的复杂域名场景,比手动字符串分割更稳定

内容的提问来源于stack exchange,提问作者Prokrastinosaurus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 13:50:26