有没有办法使用空手道 DSL 获取 sessionStorage?

Is there a way of getting a sessionStorage using Karate DSL?

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

我假设您有一个 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 密钥时,您都可以调用该功能文件。

使用 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