首页 > 解决方案 > 如何使用 Spectron 选择 React 组件?

问题描述

我正在使用 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',
  }

有任何想法吗?

标签: reactjstestingelectronspectron

解决方案


Spectron 基于 WebdriverIO 的第 4 版构建,尚未更新以支持第 5 版(尽管有一个GitHub 问题可以做到这一点)。React 选择器已添加到 WebdriverIO 的 5.8.0 版本中。当 Spectron 更新为支持 WebdriverIO 版本 5 时,您的代码应该可以工作。


推荐阅读