webdriverio browser.execute返回null

时间:2017-09-22 10:14:36

标签: javascript meteor selenium-webdriver webdriver-io

我有一个流星应用程序,想要从客户端通过webdriver.io的无头浏览器检索单元测试中的一些数据。

我想要的数据来自这个功能:

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

我使用的无头浏览器来自以下网址:

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
}

值为null,但应该有董事会。

1 个答案:

答案 0 :(得分:1)

browser.execute期望在浏览器中运行一个函数。你传入一个字符串,所以它可能不知道该怎么做。这是一个应该有效的更新代码片段:

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

如果您正在寻找更多详情,我会在my WebdriverIO course browser.execute(列表中排名第23位)的from modelcluster.models import ClusterableModel from modelcluster.fields import ParentalKey class Band(ClusterableModel): name = models.CharField(max_length=255) class BandMember(models.Model): band = ParentalKey('Band', related_name='members') name = models.CharField(max_length=255) 上播放8分钟视频。