【问题标题】:Unable to extract CSRF token from html body in Cypress无法从赛普拉斯的 html 正文中提取 CSRF 令牌
【发布时间】:2019-12-12 03:06:11
【问题描述】:

我无法从 Cypress 中的 html 解析 CSRF 令牌。 我正在关注这个链接:Logging in using CSRF Token in Cypress

尝试遵循上述链接中的 strategy #1,但我不断收到未定义的令牌。

这就是我的 html 的样子:

Return html looks like this

这就是我的代码的样子:

           cy.request({
                url: returnUrlFromLoginAPI,
                followRedirect: false
            })
            .its('body')
            .then((body) => {
                const $html = Cypress.$(body)
                const requestVerificationToken = $html.find("input[name=__RequestVerificationToken]").val()
                console.log(requestVerificationToken)
             })
        })

【问题讨论】:

  • $html.find 真的返回结果吗?我尝试了同样的方法来查询元标记,但没有成功。
  • 它确实对我有用。我能够通过 $html.find 找到该元素。

标签: html-parsing csrf cypress csrf-token


【解决方案1】:

.find 查找当前元素集的后代,而我的元标记是该集合的一部分,而不是后代。这就是为什么你应该使用.filter,因为过滤器会寻找当前集合及其后代

【讨论】:

    【解决方案2】:

    不确定“正确”的方式是什么,但我这样做了:

    cy.get('[name=__RequestVerificationToken]').then($rvt => {
       console.log($rvt.val());
    }
    

    【讨论】:

      猜你喜欢
      • 2020-12-23
      • 1970-01-01
      • 2021-07-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-07
      • 2020-08-17
      • 1970-01-01
      相关资源
      最近更新 更多