如何使用Spectron选择React组件?

时间:2019-07-01 23:05:26

标签: reactjs testing electron spectron

我正在使用Spectron来测试基于React的Electron应用程序。我想选择一个React组件,并尝试为此访问WebDriverIO的浏览器并调用react$,但是找不到该函数-'app.client.react $不是函数'。

这是我的代码(使用AVA):

test.serial('First Test', async t => {
  const app = t.context.app;

  await app.client.waitUntilWindowLoaded();
  const win = app.browserWindow;
  t.is(await app.client.getWindowCount(), 1);
  t.false(await win.isMinimized());
  t.false(await win.isDevToolsOpened());
  t.true(await win.isVisible());
  t.true(await win.isFocused());
  console.log(await app.client.react$('MyCoponent'));
});

这是错误:

 TypeError {
    message: 'app.client.react$ is not a function',
  }

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

Spectron是基于WebdriverIO的版本4构建的,尚未进行更新以支持版本5(尽管有GitHub issue可以做到)。 React selectors已添加到WebdriverIO的5.8.0版本中。当Spectron更新为支持WebdriverIO版本5时,您的代码应该可以使用。