webdriverio browser.execute returns 空

webdriverio browser.execute returns null

我有一个 meteor 应用程序,想通过 webdriver.io.

的无头浏览器从客户端检索单元测试中的一些数据

我要的数据来自这个函数:

Session.get() -> http://meteortips.com/first-meteor-tutorial/sessions/

我用的headless浏览器来自下面URL:

http://webdriver.io/

我的测试是这样的:

describe('[Check Boards]', () => {
  it('should exist', () => {
    const board = browser.execute('Session.get(\'currentBoard\')');
    ...
  }
}

当我在真正的浏览器控制台中 运行 此命令 Session.get('currentBoard') 时,我按预期获得了板。

但是当我在 mocha 测试中从上面描述的代码中 运行 它时,我得到了这个结果:

{
  "state": "success",
  "sessionId": "12345",
  "hCode": 12345,
  "value": null,
  "class": "org.openqa.selenium.remote.Response",
  "_status": 0
}

值为空,但应该有板子。

browser.execute 需要浏览器中 运行 的函数。您正在传递一个字符串,所以它可能不知道该怎么做。这是更新后的代码片段,应该可以工作:

describe('[Check Boards]', () => {
  it('should exist', () => {
    const board = browser.execute(function () {
      return Session.get('currentBoard');
    });
    ...
  }
}

如果您正在寻找更多详细信息,我在 my WebdriverIO course(列表中的第 23 位)中有一个关于 browser.execute 的 8 分钟视频。