【问题标题】:Is there a way of getting a sessionStorage using Karate DSL?有没有办法使用空手道 DSL 获得 sessionStorage?
【发布时间】:2020-01-14 23:11:33
【问题描述】:

我目前需要获取一个在 sessionStorage 密钥下保存的身份验证令牌,并将其用于其他 API 调用。我正在使用空手道 UI 自动化来访问浏览器并访问页面,但我无法访问 sessionStorage。我也想过用一些 JS 来获取它,但我不确定是否可以。有人有什么想法吗?

【问题讨论】:

    标签: javascript java karate session-storage


    【解决方案1】:

    使用script() 应该很容易。我刚刚在测试中尝试了这两个语句,它运行良好:

    * script("sessionStorage.setItem('foo', 'bar')")
    * match script("sessionStorage.getItem('foo')") == 'bar'
    

    我使用的是 0.9.5.RC5 版本,文档在这里:https://github.com/intuit/karate/tree/develop/karate-core#script

    【讨论】:

    • 我不知道这个 script() 功能!我正在阅读来自 master 分支的文档,而不是开发。感谢您的帮助!
    【解决方案2】:

    我假设您有一个 API 调用可以让您登录并获取 sessionStorage 密钥? 您可以创建一个功能文件,发送详细信息以登录,然后记录您从响应中返回的 sessionStorage 密钥。

    例如 背景:

    * def userData = read('classpath:userData.json')
    
    Scenario: Login user and get session token for subsequent tests
    Given baseUrl 'www.yoursite.com/LoginRequest'
    And request userData
    When method POST
    Then status 200
    And def r = response
    * def token = r.Key1
    * header Authorization = token
    

    那么任何时候您需要获取 sessionStorage 密钥,您都可以调用该功能文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-07-02
      • 2021-12-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多