WebdiverIO wdio 配置:使用变量

WebdiverIO wdio config: using a variable

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

如果令牌是硬编码的,则此操作运行良好!但是我想创建一个变量 'jwt' 并为其分配 JSON 网络令牌的值。 当我这样做时,出现错误“未定义 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 变量。 您应该按照文档中所述将此值作为函数的参数传递: https://webdriver.io/docs/api/browser/execute.html.

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