【问题标题】:WebdiverIO wdio config: using a variableWebdiverIO wdio 配置:使用变量
【发布时间】:2021-02-05 15:40:26
【问题描述】:

在 wdio.conf.js 文件中,我使用 beforeTest 部分设置 JSON Web 令牌,以便稍后在测试套件中我不再需要登录 Web 应用程序。

如果令牌是硬编码的,那么这个动作就完美了!然而,我想创建一个变量“jwt”并为其分配 JSON Web 令牌的值。 当我这样做时,会给出一个错误“未定义 jwt”。

在 wdio.conf.js 的顶部,我编写了以下代码 const jwt = 'eyJ0eXAiOiJKV1QiLCJhb...'

在之前的操作中,我编写了以下代码

   console.log('before exe ' + jwt)
   browser.execute(() => localStorage.setItem('usertoken', jwt))
   console.log('after exe ' + jwt)

控制台日志正在显示令牌,因此该变量在 beforeTesting 操作中起作用。 但是我在“BeforeTest Hook”中收到错误'[0-0]错误 javascript 错误:未定义 jwt'

【问题讨论】:

  • 我的理解是,jwt 是在 nodejs 上下文中声明和使用的,而执行 api 在浏览器上下文中执行脚本。所以 jwt 在浏览器级别是未定义的。也许您可以尝试将 jwt 作为输入传递给执行脚本?

标签: javascript jwt mocha.js webdriver-io wdio-v6


【解决方案1】:

浏览器不知道 jwt 变量。 您应该将此值作为函数的参数传递,如文档中所述: https://webdriver.io/docs/api/browser/execute.html.

browser.execute((browser_jwt) => localStorage.setItem('usertoken', browser_jwt), jwt)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-11-28
    • 2021-06-01
    • 1970-01-01
    • 2018-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多