【问题标题】:How can I insert dynamic value to URL in cy.visit()?如何在 cy.visit() 中向 URL 插入动态值?
【发布时间】:2020-01-28 09:37:45
【问题描述】:

我正在尝试向我想要访问的 URL 插入值。我用这个(例如):

const idp = '10'
    
cy.visit('http://test.com/aaa/bbb?id=${idp}')

但是当我运行它时,它将在这个http://test.com/aaa/bbb?id=$%7Bidp%7D 结束 而不是id=10

我也很感兴趣如何从 URL 获取变量的值。

例如,我有 URL http://test.com/aaa/bbb?id=5,我想创建变量 idc,其值为 5。

【问题讨论】:

    标签: javascript url cypress


    【解决方案1】:

    我认为您使用了错误的引号,您需要使用反引号才能使用Template Literals

    cy.visit(`http://test.com/aaa/bbb?id=${idp}`)
    

    然后您可以使用cy.url() 将当前 URL 获取为字符串,并使用 JavaScript 正常解析该字符串。

    【讨论】:

      【解决方案2】:

      对于问题的第一部分,您需要使用Template Literals 文档中概述的反引号(也称为重音符号),而不是常规引号。然后你的线看起来像 -

      cy.visit(`http://test.com/aaa/bbb?id=${idp}`)
      

      对于问题的第二部分,您可以使用URLSearchParams(请注意,这在 IE 中不起作用)。一个例子是 -

      var url = new URL("http://test.com/aaa/bbb?id=5");
      var searchParams = new URLSearchParams(url.search);
      const urlParams = new URLSearchParams(searchParams );
      const myParam = urlParams .get('id');
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2022-08-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多