我正在使用Spectron来测试一个基于React的电子应用程序。我想选择一个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',
}有什么想法吗?
发布于 2019-07-23 22:17:19
Spectron是建立在WebdriverIO的版本4上的,还没有更新到支持版本5(尽管有一个GitHub issue可以做到这一点)。WebdriverIO版本5.8.0中添加了React selectors。当“幽灵党”更新到支持WebdriverIO版本5时,你的代码应该可以工作了。
https://stackoverflow.com/questions/56843461
复制相似问题